社区
C#
帖子详情
"此SqlTransaction已完成;它再也无法使用。" 是什莫原因?
ppp80
2004-12-14 09:49:56
我做了一个windows的服务
服务正常运行一段时间后,在ontimer中就无法再启动了,提示:此SqlTransaction已完成;它再也无法使用。
这是怎莫回事?什莫原因?
...全文
2458
12
打赏
收藏
"此SqlTransaction已完成;它再也无法使用。" 是什莫原因?
我做了一个windows的服务 服务正常运行一段时间后,在ontimer中就无法再启动了,提示:此SqlTransaction已完成;它再也无法使用。 这是怎莫回事?什莫原因?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
marvelstack
2004-12-24
打赏
举报
回复
//你的代码在有异常的情况下出现问题.
Count=myAdapter.Update(TrafficDT);
myTransaction.Commit();
}
catch(Exception ex)
{
myTransaction.Rollback();//
throw ex;
}
thinhunan
2004-12-23
打赏
举报
回复
试试不写Open(),不知会不会自动Open
herony420
2004-12-23
打赏
举报
回复
已经commit或者已经rollback了
ppp80
2004-12-23
打赏
举报
回复
up
DataLife
2004-12-14
打赏
举报
回复
试试
try
{
SqlTransaction Trs;
Trs = sqlConnection.BeginTransaction();
try
{
DataAdapter1.Update(ds,"dt");
Trs.Commit();
}
catch(System.Exception e)
{
if(Trs != null)
{
Trs.Rollback();
}
throw new Exception(e.Message);
}
finally
{
if(Trs != null)
{
Trs.Dispose();
}
}
}
catch(System.Exception e)
{
throw new Exception(e.Message);
}
bootblack
2004-12-14
打赏
举报
回复
把open和BeginTransaction放到try里头去,并在catch里头添加回滚处理(如果事务开启)。
上面的方法或许对你的问题没帮助,但应该这么做。
Seeko0
2004-12-14
打赏
举报
回复
Commit之后,没有RollBack;
try{
...
trans.Commit();
}
catch(Exception err){
trans.RollBack();
throw err;
}
//没有RollBack ,如何确定你的trans有效呢?
ppp80
2004-12-14
打赏
举报
回复
这个服务能正常运行(比如时钟启动10000次),忽然就出这个错,重新启动服务就好了
如果如楼上所说,那末时钟启动一次就可能出错呀!
ppp80
2004-12-14
打赏
举报
回复
不是呀,Commit之后,断开了Connection,也重新BeginTransaction()
open();
string strSql=" ...";
SqlTransaction myTransaction=sqlConnection.BeginTransaction();
try
{
SqlCommand myCommand=sqlConnection.CreateCommand();
myCommand.Connection=sqlConnection;
myCommand.Transaction=myTransaction;
myCommand.CommandText=strSql;
SqlDataAdapter myAdapter=new SqlDataAdapter();
myAdapter.SelectCommand=myCommand;
SqlCommandBuilder myBuilder=new SqlCommandBuilder(myAdapter);
myAdapter.FillSchema(TrafficDT,SchemaType.Mapped);
....
Count=myAdapter.Update(TrafficDT);
myTransaction.Commit();
}
catch(Exception ex)
{
throw ex;
}
finally
{
close();
}
DataLife
2004-12-14
打赏
举报
回复
你的SqlTransaction 已经Commit或者RollBack之后,你又使用SqlTransaction所在的Connection去做Select、Insert、 Delete,就会出现这个错误。
CMIC
2004-12-14
打赏
举报
回复
SqlTransaction 使用了Commit()后就是不能在使用了,必须重新BeginTransaction()一个。
ppp80
2004-12-14
打赏
举报
回复
myTransaction.Rollback();
是写在catch里边了,是我刚才没贴全!
“
Sql
Tran
sac
t
ion
已
完成
;它
再也
无法
使用
”解决方法
当只是
使用
一次事务时,只用简单的事务就可以了示例代码:
Sql
ServerDataBase obj = new
Sql
ServerDataBase();
Sql
Connect
ion
conn = obj.DBconn(); conn.Open();
Sql
Tran
sac
t
ion
my
Tran
s; my
Tran
s = co
C# 利用
Sql
BulkCopy 提交
最近要迁移数据,一个老版本的数据迁移到新版本的数据库中,字段、配置、参数...以前封装好的方法只有单独一个表添加,调用了几次方法,经常出现此
Sql
Tran
sac
t
ion
已
完成
;它
再也
无法
使用
。 好吧,我改。。。 u...
SQL
事务(
Tran
sac
t
ion
) 简单的
使用
方法
事务(
Tran
sac
t
ion
)是并发控制的单位,是用户定义的一个操作...在
sql
server+ .net 开发环境下,有两种方法能够
完成
事务的操作,保持数据库的数据完整性; 一个就是用
sql
存储过程,另一个就是在ADO.NET中一种简单的
SQL
之 事务(
Tran
sac
t
ion
)
而如果数据库系统在运行过程中发生故障, 有些事务尚未
完成
就被迫中断,这些未
完成
的事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是不一致的状态。 3. 隔离性...
Tran
sac
t
ion
Scope事务处理方法介绍及.NET Core中的注意事项
Tran
sac
t
ion
Scope事务处理方法介绍及.NET Core中的注意事项 ...今天在写CzarCms的UnitOfWork的
使用
使用
到了这个
Tran
sac
t
ion
Scope事务,因此对它进行了相关资料的查阅并记录如下,希望...
C#
111,130
社区成员
642,542
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章