读书人

关于事务的有关问题

发布时间: 2012-03-19 22:03:05 作者: rapoo

关于事务的问题,?????????????
case "tlbSave ":
if (node.Text == " ") break;
//定义事务

SqlTransaction myTrans = KingLib.Db.conn.BeginTransaction();
try
{
if (myTrans != null)
{
//

SqlCommand sqlComm = KingLib.Db.conn.CreateCommand();
sqlComm.Transaction = myTrans;

}
if (btnName == "Edit ")
{
。。。操作

myTrans.Commit();


RefreshTree();//刷新树
initButtonEnable(true);//初始化按钮和可输入项
}
catch (SqlException ee)
{
myTrans.Rollback();
throw ee;
}
finally
{
KingLib.Db.conn.Close();
}
break;


case "tlbQuery ":
break;
case "tlbClose ":
this.Close();
break;


}


提示如下错误
未处理的“System.InvalidOperationException”类型的异常出现在 System.Data.dll 中。

其他信息: 如果分配给命令的连接位于本地挂起事务中,ExecuteReader 要求命令拥有事务。命令的 Transaction 属性尚未初始化。


不知怎么回事,如何处理?谢谢

[解决办法]
是不是在RefreshTree()函数或其它的相关操作中使用数据库查询的命令?
在同一个事务范围内,所有的和SqlCommand有关的命令都应该使用并且要使用同一个事务对象。
[解决办法]
看下myTrans 是不是null?

读书人网 >C#

热点推荐