用asp.net写的东西,经常出现Connection is busy with results for another command
用asp.net写的东西,经常出现Connection is busy with results for another command,不知道各位有什么较好的解决方法~~谢谢大家了~ 问题点数:50、回复次数:9Top
1 楼zjsen(位高权重责任轻,钱多事少离家近,睡觉睡到自然醒, 数钱数到手抽筋. )回复于 2004-12-03 15:57:50 得分 0
不要共用一个同一个connection对象
及时关掉connectionTop
2 楼conquersky(conquersky V)回复于 2004-12-03 16:02:49 得分 0
老老实实关掉 用完的连接Top
3 楼duxinrun(晴天坊)回复于 2004-12-03 16:06:04 得分 0
当Command对象执行钱后,自动维持Connection对象不变,也就是说,Command执行前如果Connection是关闭的,那么Command执行时打开连接,执行完毕后关闭连接,在执行期间独占连接不允许其他Command对象使用。如果一定要使用在Class级别对所有方法可见的“公共”连接对象,那么最好让连接一直处于关闭状态,然后在执行前检测连接状态,如果发现连接打开,则说明有Command在使用连接执行操作,等连接关闭后说明其他Command已经执行完毕,就可以执行其他Command了。
造成这个问题的原因,可以猜测为:事件交叠,多线程并发等等。如果需要彻底解决,可以使用命令排队或者多线程同步的方法。Top
4 楼lonelydreamsym(惊梦)回复于 2004-12-03 16:16:26 得分 0
关连接Top
5 楼lion20(lion)回复于 2004-12-03 16:49:55 得分 0
我原先用的是在一个类中
class a
{
连接.open();
第一个DataReader;
第二个DataReader;
第三个DataReader;
连接.close();
}
各位的意思是否应该是
class a
{
连接.open();
第一个DataReader;
连接.close();
连接.open();
第二个DataReader;
连接.close();
连接.open();
第三个DataReader;
连接.close();
}Top
6 楼aoyo(遨游~ 认真生活,努力微笑^_^)回复于 2004-12-03 16:59:21 得分 0
DataReader.Close()
Top
7 楼rickjelly2004(每逢佳节倍思亲-------------快乐生活)回复于 2004-12-03 17:03:07 得分 0
fill()
就不会有问题
它会自动关闭的Top
8 楼tomtown530(梦想一定会实现!)回复于 2004-12-03 17:19:47 得分 50
呵呵,这就是编程习惯问题了,一般conn在用的时候才打开,在页面最后最好显式关闭。
一般 这样用
conn.open()
cmd.execute....
conn.close()
如果是reader
conn.open()
reader = cmd.executereader(CommandBehavior.CloseConnection);
这样在关闭reader 的同时也关闭了connTop
9 楼lion20(lion)回复于 2004-12-03 19:22:18 得分 0
谢谢tomtown530(梦想一定会实现!) 的详细答复~~Top




