如何应用事务进行多表更新?

zag 2002-06-20 03:29:55
我在程序中是这样写的:
sqlCommand s=new sqlCommand("插入一个表",cn);
sqlTranscation st=cn.BeginTranscation();
s.Transcation=st;
this.sqlDataAdapter1.InsertCommand.Transcation=st;
this.sqlDataAdapter1.DeleteCommand.Transcation=st;
this.sqlDataAdapter1.UpdateCommand.Transcation=st;
this.sqlDataAdapter2.InsertCommand.Transcation=st;
this.sqlDataAdapter2.DeleteCommand.Transcation=st;
this.sqlDataAdapter2.UpdateCommand.Transcation=st;
//注:sqlDataAdapter1,sqlDataAdapter2绑定在dataSet11上
try
{
s.ExecuteNonQuery();
(****)this.sqlDataAdapter1.Update(this.dataSet11,"表1");
this.sqlDataAdapter2.Update(this.dataSet11,"表2");
st.Commit();
}
catch(Exception ex)
{
st.Rollback();
MessageBox.Show(ex.Message);
return
}
只更新dataSet11中的表1时,一切正常,但如果更新两个表,会弹出消息框,指出Transcation与连接无关联.异常是在标注为(****)的行中抛出的,真弄不懂是怎么回事,望各位高手赐教。



...全文
88 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
acptvc 2002-06-23
  • 打赏
  • 举报
回复
From MSDN:
"SqlCommand.Transaction 属性:
...
如果将此事务属性设置为 SqlTransaction 对象,而该对象未连接到与 SqlCommand 对象相同的 SqlConnection,那么在下次试图执行语句时将会发生异常。
"

另外你可以参看:
http://msdn.microsoft.com/msdnmag/issues/02/05/Basics/Basics0205.asp

- 微软全球技术中心 VC技术支持

本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款
(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查
(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
zag 2002-06-22
  • 打赏
  • 举报
回复
真的没人懂吗?还是不愿意帮我???

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧