/// <summary>
/// 执行查询(连接式),逐行读取查询结果
/// </summary>
/// <remarks>使用完毕后,一定不要忘记Reader.Close()</remarks>
/// <param name="sql">SQL语句</param>
/// <param name="parameters">SQL参数集合</param>
/// <returns>SqlDataReader对象</returns>
public static SqlDataReader ExecReader(string sql, params SqlParameter[] parameters)
{
//创建连接对象
//【为什么不能使用using?】
SqlConnection sqlConnection = new SqlConnection(strConn);
using (SqlCommand sqlCommand = new SqlCommand(sql, sqlConnection))
{
//判断参数中是否有值
if (parameters != null && parameters.Count() > 0)
{
sqlCommand.Parameters.AddRange(parameters);
}
try
{
sqlConnection.Open();
//将Reader与Connection进行绑定,关闭Reader的同时释放Connection
return sqlCommand.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex) //执行出错,释放资源
{
sqlCommand.Dispose();
sqlConnection.Close();
sqlConnection.Dispose();
throw ex;
}
}
}