最近学习了一下ADO.NET,我想封装一个获取SqlDataReader的方法供别处调用,
但是遇到了一些问题,最后找到了解决方法。
封装的时候如果用using{}将连接及执行等过程括起来,这样可以保证最后关闭连
接,但是调用时却会出错。
最初我封装的代码是这样的:
public static SqlDataReader GetDataReader(string sql, params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(connstr))
{
SqlCommand cmd = new SqlCommand(sql, conn);
foreach (SqlParameter parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
try
{
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
return dr;
}