关于 DataReader 封装的问题

我想将 DataReader 封装入我的 DbHelper 类中,代码如下:

public OleDbDataReader GetDataReader(string cmdText)
{
  OleDbCommand cmd = new OleDbCommand(cmdText, dbConnection);
  //using (dbConnection)
  //{
    if (dbConnection.State.Equals(ConnectionState.Closed)) dbConnection.Open();
    OleDbDataReader rdr = cmd.ExecuteReader();
    rdr.Read();
    if (rdr.HasRows())
    {
      return rdr;
    }
    else
    {
      return null;
    }
  //rdr.Close();
  //dbConnection.Close();
  //}
}

请注意我注销调的部分。
在返回rdrZ之前是不能关闭数据库连接的,但这样IIS进程是否会一直连着数据库,如果同时访问人数增加,会有什么影响?


qq_花开花谢_0
浏览 390回答 2
2回答

米琪卡哇伊

你应该使用ExecuteReader的重载方法,ExecuteReader(CommandBehavior.CloseConnection),此方法会在reader关闭之后自动关闭数据库连接

慕的地6264312

然后释放的时候直接调用 rdr.Close()
打开App,查看更多内容
随时随地看视频慕课网APP