当前位置: 代码迷 >> Oracle管理 >> 同时往Oracle数据库的两个表中插入数据的有关问题!怎么保证同步性
  详细解决方案

同时往Oracle数据库的两个表中插入数据的有关问题!怎么保证同步性

热度:68   发布时间:2016-04-24 05:50:19.0
同时往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 = "begininsert 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
  相关解决方案