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

asp.net 里oracle事务处理
在asp.net 里,连接oracle数据库
在一个Button1_Click里面完成下面3个操作(.net的.aspx.cs页面)

string str1 = "insert into table1 (name1) values ('"+TextBox1.Text+"')";
OracleCommand com1 = new OracleCommand(str1, conn);
conn.Open();
com1.ExecuteNonQuery();
conn.Close();

string str2 = "insert into table2 (name2) values ('"+TextBox2.Text+"')";
OracleCommand com2 = new OracleCommand(str2, conn);
conn.Open();
com2.ExecuteNonQuery();
conn.Close();

string str3 = "update table3 set name3= '"+TextBox2.Text+"' ";
OracleCommand com3 = new OracleCommand(str3, conn);
conn.Open();
com3.ExecuteNonQuery();
conn.Close();

如果一个语句没执行成功,回滚到原来的状态,全部执行成功了才提交,这个应该用事务处理来做吧,应该怎么写啊

------解决方案--------------------
类似这样。
try {
conn.Open();
com1.ExecuteNonQuery();
com2.ExecuteNonQuery();
com3.ExecuteNonQuery();
conn.commit();
conn.Close();
} catch (...) {
conn.rollback();
conn.Close();
}