关于事务的问题,?????????????
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?