-1
我正在使用oracle事务同时插入到多表一个主表和两个细节表。所以我会插入一个记录到主表和多记录到另外两个表。 我需要返回值1,如果所有表中的操作成功,如果发生错误,我将返回0,如果数据已经存在于主表中,则返回3。我需要做这在C#,这里是我的代码, 以及我如何修改我的代码使用循环使用C#创建oracle事务#
public int RunOracleTransaction(Student s, Marks[] m, Course []s)
{
using (OracleConnection connection = new OracleConnection(connectionString))
{
connection.Open();
OracleCommand command = connection.CreateCommand();
OracleTransaction transaction;
// Start a local transaction
transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);
// Assign transaction object for a pending local transaction
command.Transaction = transaction;
try
{
// what i shall do to insert 1 record to master data and multi records //to details data as one transaction ?
}
catch (Exception e)
{
transaction.Rollback();
Console.WriteLine(e.ToString());
Console.WriteLine("Neither record was written to database.");
}
}
}
你会当然需要实例化'OracleTransaction';你还应该使用一个使用块来确保它完成。调用'Commit'以避免回滚。 – Richard