首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

大神,为什么远程连接Access数据库后,断开网络,执行查询后依然有数据

2012-09-16 
求助大神,为什么远程连接Access数据库后,断开网络,执行查询后依然有数据用的是VS2008,远程连接Access2003

求助大神,为什么远程连接Access数据库后,断开网络,执行查询后依然有数据
用的是VS2008,远程连接Access2003数据库,连接成功后,我将网络连接禁用,然后发现没有报错,我用断点查的时候发现执行查询语句还能查询出数据,奇怪,不是断开了吗?为什么还有数据

C# code
 public DataTable Mydatatable(string s3)        {            DataTable inv = new DataTable();            inv.Clear();            try            {                ReConnection();                if (sqlcn.State == ConnectionState.Open)                {                    using (SqlCommand sqlcom3 = new SqlCommand(s3, this.sqlcn))                    {                        SqlDataReader sdr = sqlcom3.ExecuteReader();                        inv.Load(sdr);                        sqlcom3.Dispose();                        sdr.Dispose();                        sdr.Close();                    }                }                else if (olecn.State == ConnectionState.Open)                {                    using (OleDbCommand olecom2 = new OleDbCommand(s3, this.olecn))                    {                        OleDbDataReader oledr = olecom2.ExecuteReader();                        inv.Load(oledr);                        olecom2.Dispose();                        oledr.Dispose();                        oledr.Close();                    }                }                errflag = false;                return inv;            }            catch(Exception err)            {                errflag = true;                return inv;                throw err;            }        } 

   


上面是执行数据库查询语句,在连接类里面,下面是调用语句,用定时器不断来读取远程Access数据库数据

C# code
DataTable dt1 = new DataTable();select_st1 = "select ScTime from sRecords where ScTime in (select max(ScTime) from sRecords)";dt1 = access_con1.Mydatatable(select_st1);DataTableReader dbreader = new DataTableReader(dt1);dbreader.Read();st1 = Convert.ToString(dbreader.GetValue(dbreader.GetOrdinal("ScTime")));


上面执行查询语句已经有释放资源的语句了,为什么当网络断了,而且还是远程连接的时候,还有数据返回,还能查询出数据,希望各位大虾指点下我这个小菜鸟,想了很久都不知道为什么



[解决办法]
一般这种问题都是粗心引起的
[解决办法]
如果已经执行完成了。你断开网络只会影响你后面的程序。
[解决办法]
内存没清理干净
[解决办法]
每查完后 关闭Connection就行了

热点排行