求助:事务提交两次后报错
数据库是Oracle,数据量较大,就先做了一个demo测试。
数据给十万条,打算每一千条提交一次。设置断点在txn.Commit();
能够Commit两次后(能够插入两次结果就是2000个条记录)就报错:System.InvalidOperationException: 对象的当前状态使该操作无效。
希望大家给帮帮忙,程序是winfrom的。在线等好心人解答,代码很简单如下:
在 Oracle.DataAccess.Client.OracleTransaction.Commit()
public void InsertValueTest()
{
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
//启用事务
OracleTransaction txn = conn.BeginTransaction(IsolationLevel.ReadCommitted);
cmd.Transaction = txn;
try
{
for (int i = 1; i < 100001; i++)
{
cmd.CommandText = @"insert into /*+apppend*/t_channel_value_l0 values (" + i + "," + (i+1) + "," + (i+2) + ")";
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
if (i % 1000 == 0)
{
try
{
txn.Commit(); //---------这里设置断点,第二次走过以后直接进catch
}