我有一个包含SqlDataReader的基类,该基类使用存储过程获取数据,这非常有用,直到我返回数据读取器备份说连接为空。

有人有什么想法吗?这是我的代码:

public SqlDataReader GetDataReader(string QueryName, SqlParameter[] Params)
{
   SqlConnection conn = new SqlConnection(this.ConnectionString);
   SqlDataReader reader;

   using (conn)
   {
      SqlCommand command = new SqlCommand(QueryName,conn);
      command.CommandType = CommandType.StoredProcedure;

      if(Params !=null)
          command.Parameters.Add(Params);

      conn.Open();

      reader = command.ExecuteReader();
   }

   // conn.Close();

   return reader;
}


如果您注意到,我已关闭部分的注释,这是我试图使其正常工作,出于某种原因,当将数据读取器备份返回时,它设置为关闭?

谢谢!

最佳答案

您要执行以下操作:

    SqlDataReader dr = command.ExecuteReader(CommandBehavior.CloseConnection)


并且不要关闭连接。关闭数据读取器时,如果使用上面的代码,它将为您关闭。

关于c# - 我的基类中的C#SqlDatareader返回空连接错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8119172/

10-11 02:05