我想将 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进程是否会一直连着数据库,如果同时访问人数增加,会有什么影响?
你应该使用ExecuteReader的重载方法,ExecuteReader(CommandBehavior.CloseConnection),此方法会在reader关闭之后自动关闭数据库连接
同楼上 !然后释放的时候直接调用 rdr.Close()