网站运行 时常出现 列 不属于表

来源:百度知道 编辑:UC知道 时间:2024/05/13 00:41:13
开发环境win2003 sp2,VS2005,sqlsever
编译发布后运行一段时间 ,经常出现 列“”不属于表“”,并且所有的用户均访问不了系统,但过一段时间又好了(或者把数据库连接清除),
上述错误是间断性的出现,有时候好,运行一段时间后又出现,而且每个与数据库打交道的页面都有了这种错误,某列 不属于表。
应该不是缓存的问题,重启sql就可以了,并不用清除缓存

在配置连接字符串里加一句MultipleActiveResultSets=true" ;
在多线程同时访问数据库的时候,会出现一个还为访问完,另一个就建立了连接。返回的Dataset就会被改变,就会出现不存在。。。。
我们解决的办法就是在创建连接的时候就要判断是否已经打开----
(开)New一个新的连接;(关)使用。
如果正在打开,则等待(锁住 这里我们可以用while(true))当已经打开,我们在另外创建新的连接,
但是要注意,当前一个用户连接失败,则还是要第二个用户进行连接操作(try catch 连接失败第二个用户执行while(false)),否则就会无限的等待下去。
有四个用户:1,2,3,4
1正在使用,2建立一个新的连接
3判断1正在使用,看第二个连接2正在打开,排队等待,1,2打开,3建立,
4判断1用完,使用1;

看看是不是缓存问题