遇到的情况:所有sql语句、参数都是正确无误的,但是执行程序后会报错“ExecuteReader: CommandText 属性尚未初始化”。
百度、谷歌一下,并没有搜索到我这种出错情况....囧
经过第二轮代码复查,终于找到了问题所在,原来是storedProcName没有传存储过程的名称!太低级失误啦!
百度、谷歌一下,并没有搜索到我这种出错情况....囧
经过第二轮代码复查,终于找到了问题所在,原来是storedProcName没有传存储过程的名称!太低级失误啦!
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="storedProcName">存储过程名</param>
/// <param name="parameters">存储过程参数</param>
/// <param name="tableName">DataSet结果中的表名</param>
/// <returns>DataSet</returns>
public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName)
{
SqlConnection connection = new SqlConnection(connectionString);
DataSet dataSet = new DataSet();
connection.Open();
SqlDataAdapter sqlDA = new SqlDataAdapter();
sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters);
sqlDA.Fill(dataSet, tableName);
sqlDA.Dispose();
connection.Close();
return dataSet;
}
/// 执行存储过程
/// </summary>
/// <param name="storedProcName">存储过程名</param>
/// <param name="parameters">存储过程参数</param>
/// <param name="tableName">DataSet结果中的表名</param>
/// <returns>DataSet</returns>
public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName)
{
SqlConnection connection = new SqlConnection(connectionString);
DataSet dataSet = new DataSet();
connection.Open();
SqlDataAdapter sqlDA = new SqlDataAdapter();
sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters);
sqlDA.Fill(dataSet, tableName);
sqlDA.Dispose();
connection.Close();
return dataSet;
}