遇到的情况:所有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;
}