"没有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对象后必须显式地关闭它,还有它的连接!