在VS2005中,写入如下语句;完成事务;在运行过程中,经常发现,写入成功后又,又显示写入失败(因为设置了主键,不能重复的)。到数据库查看数据应该成功写入;代码如下 Sql_conn.Open();
SqlCommand Sql_Add_Cmd = Sql_conn.CreateCommand();
Sql_Add_Cmd.CommandTimeout = 300; //连接时限改为300秒
SqlTransaction SqlTran = Sql_conn.BeginTransaction();
Sql_Add_Cmd.Transaction = SqlTran; Oracle_conn.Open();
OracleCommand Ora_Bill_Cmd = Oracle_conn.CreateCommand();
OracleTransaction OraTran = Oracle_conn.BeginTransaction();
Ora_Bill_Cmd.Transaction = OraTran;
using (TransactionScope transScope = new TransactionScope())
{
try
{//---创建事务用-------
FOR (i=0;i<m;i++)
{
...
...
插入语句
} SqlTran.Commit(); //提交数据
OraTran.Commit(); //提交数据
}
catch (Exception ex)
{
SqlTran.Rollback(); //回滚数据
OraTran.Rollback();
Response.Write("----具体错误描述请看"+ex.String());
}
} Sql_conn.Close();
Oracle_conn.Close();错误日志:XX写入成功! XX写入失败,原因是主键存在!
SqlCommand Sql_Add_Cmd = Sql_conn.CreateCommand();
Sql_Add_Cmd.CommandTimeout = 300; //连接时限改为300秒
SqlTransaction SqlTran = Sql_conn.BeginTransaction();
Sql_Add_Cmd.Transaction = SqlTran; Oracle_conn.Open();
OracleCommand Ora_Bill_Cmd = Oracle_conn.CreateCommand();
OracleTransaction OraTran = Oracle_conn.BeginTransaction();
Ora_Bill_Cmd.Transaction = OraTran;
using (TransactionScope transScope = new TransactionScope())
{
try
{//---创建事务用-------
FOR (i=0;i<m;i++)
{
...
...
插入语句
} SqlTran.Commit(); //提交数据
OraTran.Commit(); //提交数据
}
catch (Exception ex)
{
SqlTran.Rollback(); //回滚数据
OraTran.Rollback();
Response.Write("----具体错误描述请看"+ex.String());
}
} Sql_conn.Close();
Oracle_conn.Close();错误日志:XX写入成功! XX写入失败,原因是主键存在!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货