我有三个SqlDataAdapter分别对应不同的三个表,一个用来插入,二个用来更新的,
我使用的是自动生成SQL命令的SqlCommandBuilder
我new SqlDataAdapter的时候没有使用SQLCOMMAND,而是使用SQL字符串的,
现在我想将对这三个表的修改加入一个事务中去,
我看了一下MSDN,发现都是需要SQLCOMMAND对象的,我不知道怎样从SqlDataAdapter引用到SqlDataAdapter,而且我也不知道如果能够引用到,是否能够让这三个表加入一个事务?我想下面的写法肯定有问题的,请问应该怎么写,多谢!
scAAA.Open();
SqlTransaction myTrans = scAAA.BeginTransaction();
sdaBBB.UpdateCommand.Transaction = myTrans;
sdaCCC.UpdateCommand.Transaction = myTrans;
sdaDDD.InsertCommand.Transaction = myTrans;
我使用的是自动生成SQL命令的SqlCommandBuilder
我new SqlDataAdapter的时候没有使用SQLCOMMAND,而是使用SQL字符串的,
现在我想将对这三个表的修改加入一个事务中去,
我看了一下MSDN,发现都是需要SQLCOMMAND对象的,我不知道怎样从SqlDataAdapter引用到SqlDataAdapter,而且我也不知道如果能够引用到,是否能够让这三个表加入一个事务?我想下面的写法肯定有问题的,请问应该怎么写,多谢!
scAAA.Open();
SqlTransaction myTrans = scAAA.BeginTransaction();
sdaBBB.UpdateCommand.Transaction = myTrans;
sdaCCC.UpdateCommand.Transaction = myTrans;
sdaDDD.InsertCommand.Transaction = myTrans;
sdaCCC.UpdateCommand.Transaction = myTrans;
sdaDDD.InsertCommand.Transaction = myTrans;
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
因为我使用的是SqlAdapter.Update(..),是自动生成SQL命令来更新数据源的; 我也没有设置上面这三个对象的Command属性,我不知道是哪里有问题?
直接操作即可
myTrans.Commit();
直接操作即可
myTrans.Commit();
但前提是你一定要把command的联接串指向一个sqlconnection
在生成我上面的三个SqlDataAdapter时,我没有显式的生成SqlCommand,也就是说我在构造SqlDataAdapter时,用的是SqlDataAdapter(String strCmd, String strConn);
我不知道怎么 "把command的联接串指向一个sqlconnection"?
所以我现在的程序用了事务后一执行到
SqlDataAdapte.Update(dataset,datatablename)
时就报异常了 "该命令的 Transaction 属性尚未初始化" ??
是不是一定要显示的构造SqlCommand 才可以使用事务?