日期:2014-05-17  浏览次数:21055 次

同时往Oracle数据库的两个表中插入数据的问题!!!如何保证同步性
要么都成功,
要么都不成功。
怎么实现呢
  protected void Button1_Click(object sender, EventArgs e)
  {

  sql1 = "insert into biao1(id,other)values('1',445)";

  OracleCommand insert_it = new OracleCommand(sql1, conn);
  insert_it.ExecuteNonQuery();
  //////////////////
  sql2 = "insert into biao2(id,qita)values('1','good')";

  OracleCommand insert_it2 = new OracleCommand(sql2, conn);
  insert_it2.ExecuteNonQuery();
  }
////////////////
我是在vs2005平台中使用asp.net2.0 c#


------解决方案--------------------
想到两个办法:
1.写成pl/sql方式,
C# code
protected void Button1_Click(object sender, EventArgs e)
  {
  sql1 = "begin
insert into biao2(id,qita)values('1','good');
insert into biao1(id,other)values('1',445);
end;";
  OracleCommand insert_it = new OracleCommand(sql1, conn);
  insert_it.ExecuteNonQuery();
  //////////////////
  //sql2 = "insert into biao2(id,qita)values('1','good')";

  //OracleCommand insert_it2 = new OracleCommand(sql2, conn);
  //insert_it2.ExecuteNonQuery();
  }

------解决方案--------------------
用C#语言中的事务处理机制,在try块中开始一个事务,然后执行2条插入操作,
如果出现异常,在catch块中,进行回滚。
------解决方案--------------------
SQL code
在try块中开始一个事务,然后执行2条插入操作,
如果出现异常,在catch块中,进行回滚。

------解决方案--------------------
探讨
引用:
C# code

protected void Button1_Click(object sender, EventArgs e)
{
sql1 = @"begin
insert into biao2(id,qita)values('1','good');
insert into biao1(id,other)values('1',445);
……

------解决方案--------------------
参考这个帖子吧,呵呵。里面有示例代码。
http://topic.csdn.net/t/20050115/09/3727497.html