"没有OledbDataReader.Close()又能如何?"……?!

"没有OledbDataReader.Close()又能如何?"……?!

1、在DAL层访问Access数据库返回OleDbDataReader,加了CommandBehavior.CloseConnection参数:

  OleDbDataReader reader = 命令对象.ExecuteReader(CommandBehavior.CloseConnection);
  return reader;

2、在UI层或BLL层需用到这个OleDbDataReader的时候,没有将这个OleDbDataReader实例关闭,导致Access数据库旁边一值有一个"*.ldb"文件,代表这个连接还没关闭!
修改代码将OleDbDataReader实例关闭后就不会出现这个文件了(不是不出现,而是很快就没有,因为.net用完它马上就关闭连接了,所有看不到)。

    if (!reader.IsClosed)
      reader.Close();

3、经验:用完DataReader对象后必须显式地关闭它,还有它的连接!

你可能感兴趣的:("没有OledbDataReader.Close()又能如何?"……?!)