当前位置: 代码迷 >> ASP.NET >> sql timeout有关问题,难
  详细解决方案

sql timeout有关问题,难

热度:2462   发布时间:2013-02-25 00:00:00.0
sql timeout问题,难!
我用ASP.net做了一个程序,数据库用的是SQl Server 2005,Sqltimeout时间设的是3000毫秒。

在用的人多的时候,经常会出现我一个事务中的数据库操作某些被提交了,某些没提交的现象,这个正常吗??

------解决方案--------------------------------------------------------
应该不正常吧。。顶一下。。
------解决方案--------------------------------------------------------
没用过,要不试下把时间设大点?
------解决方案--------------------------------------------------------
jf
------解决方案--------------------------------------------------------
探讨
问题是只要超时了,他会自动提交吗?

------解决方案--------------------------------------------------------
如果你果真出这个问题属实,你可以砸了微软公司!
------解决方案--------------------------------------------------------
你的sql语句在查询分析器要执行多久时间啊?看下这个时间是多少。然后再去查其它问题
------解决方案--------------------------------------------------------
```没有遇到过 顶哈
------解决方案--------------------------------------------------------
探讨
我用ASP.net做了一个程序,数据库用的是SQl Server 2005,Sqltimeout时间设的是3000毫秒。

在用的人多的时候,经常会出现我一个事务中的数据库操作某些被提交了,某些没提交的现象,这个正常吗??

------解决方案--------------------------------------------------------
不rollback的么?
------解决方案--------------------------------------------------------
事务要么全做,要么全不做

贴出你的代码来看看
------解决方案--------------------------------------------------------
楼主说的这种情况是不可能发生的。
解决办法:
1、你的事务代码逻辑关系是否正确
2、更新的是那个用户提交的,因为不一定是你认为的那个用户的事务提交上的。查看一下。是怎么提交上去的


------解决方案--------------------------------------------------------
使用锁机制和事务sqltransaction
Begin TRANSACTION 

Commit TRANSACTION 

ROLLBACK TRANSACTION 
或 
public void SqlTransactioin(string[] sqls) 

using(SqlConnection con = new SqlConnection("")) 

conn.Open(); 
SqlCommand comm = conn.CreateCommand(); 
SqlTransaction trans = conn.BeginTransaction(); 
comm.Transaction = trans; 
try 

foreach (string sql in sqls) 

comm.CommandText = sql; 
comm.ExecuteNonQuery(); 

trans.Commit(); 

catch (Exception ex) 

trans.Rollback(); 


conn.Close(); 


------解决方案--------------------------------------------------------
楼主是不是忘记了Commit() 及 Rollback() 啦?

------解决方案--------------------------------------------------------
Up
------解决方案--------------------------------------------------------
看你自己程序的逻辑,事务是否提交或者回滚。
------解决方案--------------------------------------------------------
不会,学习下
------解决方案--------------------------------------------------------
帮顶
------解决方案--------------------------------------------------------
你的sql 执行的时间长么?
------解决方案--------------------------------------------------------
up
------解决方案--------------------------------------------------------
你写的事务肯定是有问题的。这个东西比较难得写的。有些提交有些没有提交,那说明出现了异常。但是你的事务没有捕捉到。为什么没有捕捉到?答:因为你写错了。要好好参考一下范例
  相关解决方案