ASP.NET错误原因:没有及时关闭数据库和释放资源造成的。而使用DataReader对象时就特别容易犯这样的错误。为什么这样说呢?下面我们来介绍一下DataReader对象: DataReader对象提供了以顺序的、只读的方式读取Command对象获得的数据结果集。而DataReader有一个Close()方法,该方法不带参数,无返回值,用来关闭DataReader对象。由于DataReader在执行SQL命令时一直要保持同数据库的连接,所以在DataReader对象开启的状态下,该对象所对应的Connection连接对象不能用来执行其它操作。所以,在使用完DataReader对象时,一定要用Close()方法关闭,否则不仅会影响到数据库的效率,更会阻止其它对象使用Connection连接对象来访问数据库(即:未指定的错误)。 如果把数据库的操作都封装到了一个类中,但DataReader只有在读取完毕时才能关闭数据库,这样类中就不能关闭数据库连接。如果在函数中就关闭了会提示“阅读器关闭时Read的尝试无效” 。微软兄弟肯定会想到这样的问题,会为我们考虑周到的,下面是解决方法: public OleDbDataReader ExecuteReader(string sql) MSDN中对CommandBehavior.CloseConnection的解释是“在执行该命令时,如果关闭关联的 DataReader对象,则关联的Connection 对象也将关闭。 在程序在需要的时候我就直接构造好SQL语句,调用这个函数即可,如下: con.Open(); 第二种情况:没有正确获取数据库连接字符串,请检查数据库连接代码。 转载本博客文章请注明,转载自: 极数博客 本文地址: http:///?p=4238 |
|
来自: liyuepiaoxue > 《.NET》