110,538
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// 执行存储过程返回 System.Data.SqlClient.SqlDataReader,
/// 在 System.Data.SqlClient.SqlDataReader 对象关闭时,数据库连接自动关闭。
/// <param name="paraValues">传递给存储过程的参数值列表。</param>
/// <returns>包含查询结果的 System.Data.SqlClient.SqlDataReader 对象。</returns>
/// </summary>
public Object[] ExecuteDataReader(out object[] output, int outParaNum, params object[] paraValues)
{
object[] strValues = new object[1];
using (SqlConnection connection = new SqlConnection(Con_String))
{
IDataReader sdr = null;
SqlCommand command = this.CreateSqlCommand(connection);
output = new object[outParaNum];//存储过程中返回值的个数
try
{
this.DeriveParamenters(command);
this.AssignParameterValues(command, paraValues);
connection.Open();
sdr = command.ExecuteReader(CommandBehavior.CloseConnection);
if (sdr.Read())
{
strValues = new object[sdr.FieldCount];
sdr.GetValues(strValues);
}
else
{
strValues[0] = "null";
}
}
catch
{
throw new Exception();
}
finally
{
sdr.Close();
command.Dispose();
}
return strValues;
}
}