sql timeout问题,难!
我用ASP.net做了一个程序,数据库用的是SQl Server 2005,Sqltimeout时间设的是3000毫秒。
在用的人多的时候,经常会出现我一个事务中的数据库操作某些被提交了,某些没提交的现象,这个正常吗??
------解决方案--------------------应该不正常吧。。顶一下。。
------解决方案--------------------没用过,要不试下把时间设大点?
------解决方案--------------------jf
------解决方案--------------------
------解决方案--------------------如果你果真出这个问题属实,你可以砸了微软公司!
------解决方案--------------------你的sql语句在查询分析器要执行多久时间啊?看下这个时间是多少。然后再去查其它问题
------解决方案--------------------```没有遇到过 顶哈
------解决方案--------------------
------解决方案--------------------不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
------解决方案--------------------你写的事务肯定是有问题的。这个东西比较难得写的。有些提交有些没有提交,那说明出现了异常。但是你的事务没有捕捉到。为什么没有捕捉到?答:因为你写错了。要好好参考一下范例