This SqlTransaction has completed; it is no longer usable.C# 报出的错误,不解,望指教

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/18 06:59:04
This SqlTransaction has completed; it is no longer usable.C# 报出的错误,不解,望指教
xTKO@+e8 h%$BI%$unWH 4E%-BPB?M8/tlb\zh/|73;Pj )QK!TQnP(Rd kHgb ıTX~_5o5+ɮf߿JId^(fc@U˵8Ȼ4/}NlxP\(ۍߖZi(êI<:yw ^"^<6Ih]=œfq[C.WoJ xaتY#,ɑ|d_p~68\4ٰKjn^"jt %Rk|Ҿq|.ľu˽Mx$6 > Ca4229Y'$TULiݹtJSFcrԄN.dzIǨ\XF'g)ӃzQ%pյ~n v-#q9h;%籚fx$Sil-^C}.e^+B־-P9An3vuѮȡ>R@r/!KkqJEڑ-M3b=ߪgxy,YX(GYf

This SqlTransaction has completed; it is no longer usable.C# 报出的错误,不解,望指教
This SqlTransaction has completed; it is no longer usable.C# 报出的错误,不解,望指教

This SqlTransaction has completed; it is no longer usable.C# 报出的错误,不解,望指教
This Transaction has completed; it is no longer usable根源分析
1 链接对象没有打开Transaction
如:XXXTransaction transaction=conn.BeginXXXTransaction();
2 在Command对象中未设置Transaction
可以在new XXXCommand(sqlStr,conn,transaction),也可以用XXXCommand对象的引用打开
com.XXXTransaction=transaction;
3 获取在本conn连接中参入了其他conn
例如:
OleDbConnection conn = DBUtilFactory.getConnection("Access");
updateStr = sb.ToString();
updateStr = updateStr.Substring(0,updateStr.LastIndexOf(",")) + " where id=" + id;
OleDbCommand com = new OleDbCommand(updateStr,conn,ts);
com.ExecuteNonQuery();
ts.Commit();
DataTable table = accessOper.sendData(conn,tableName,id);
dt.Merge(table,false,MissingSchemaAction.Ignore);
count++;
在调用accessOper.sendData()时,两次数据库操作的conn(链接对象)是同一个.

it is no longer usable 错了。

此SQL交易已经完成,它已不再可用