急问一个SqlConnection连接数据库的问题 SqlCommand使用完毕后马上关闭,不要作为全局变量来传递到所以的方法中,只要保持一个SqlConnection即可,在所以的方法中由SqlConnection生成SqlCommand,并将Transaction传递给SqlCommand,直到最后所有方法都顺利完成的时候调用Commit(), 一旦有错就全部Rollback(). 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你说的问题涉及到并发控制问题,.net使用开放式并发控制,具体你可以查帮助! 建议楼主看看MSDN,上面应该有. 你所说的问题并不是.net的问题,而是sqlserver的问题,记得我以前看过一篇文章,其中说道sqlserver的lock机制不太好,其中默认设置是当一个用户lock后,其他人是无法访问,而你可以用以下的语句试试select * from yourtable (readpast) 但是这样查询出来结果不包括已经修改但没有commit的数据 orselect * from yourtable (nolock) 谢谢楼上各位的回答. 的确是SQL Server的问题, 如果不设计以前update过的table是完全没问题的. 但一旦之前用过的table被update,但是没有commit; 以后(在commit之前)便无法访问. 单纯的select不行(明天试试加个 with nolock行不行). SqlServer的locking机制似乎只对不同的用户有效, 才同一个用户身上似乎是按照first in first served的原则, 即使是更改了isloation (lock)的level, 后来的也要等到前面的处理完 :( 我觉得这并不是.net的问题,好像是数据库的并发控制的问题。在你的table1中有用到table2的数据吗?table2有加什么控制锁吗?如果有的话,在table1的事务没有commit前,table2至少被加了共享锁。table2自然就不允许被修改。 谢谢 Knight94(愚翁), 加个nolock就可以了 :) C# visio 帮忙看下这个函数,在线等 多线程的问题 如何在Dll中调用Google map? 数据库查询问题,急??????????????????????????????????????? 电驴自动打开的原理? C#中 pictruebox显示两幅图片的叠加 请问哪位有二进制文件的传输程序 如何调用.lib文件? 小白求助,c#通过如何ajax传递参数到后台 求助还原数据库中保存为image 类型的文件 我的结构体怎用错了
select * from yourtable (readpast)
select * from yourtable (nolock)
在你的table1中有用到table2的数据吗?table2有加什么控制锁吗?如果有的话,在table1的事务没有commit前,table2至少被加了共享锁。table2自然就不允许被修改。