【问题标题】:changes to db from csharp are partly commitedcsharp 对 db 的更改已部分提交
【发布时间】:2023-01-22 18:22:45
【问题描述】:

正如标题所说,我有一个 .net 程序,它有一个方法(名称无关紧要).. 所以有一种方法,我循环遍历数据表并用来自 csv 的数据填充它,然后我构建一个查询,在其中添加参数并执行

insert into bakashot id,name,bla values(:id,:name,:bla);

例如,我构建了这样的参数

cmd.Parameters[":id"].Value = id;

无论如何,一切都很好,数据库表中充满了值。

现在,我有另一个表可以说是 bakashot_history,我想在 bakashot 表的插入语句之前,从原始 bakashot 中获取记录,将它们插入到 bakashot_history 表中,然后从 bakashot 表中清除记录。

我注意到它只会在我进行调试时提交,否则没有异常或任何东西 - 它只是不会提交。

所以我想,如果插入语句运行良好而无需调试或 thread.sleep(我也尝试过),为什么 DELETE 语句和“Transfer”(从 b 插入 a)突然需要调试?那很奇怪,我一无所知..

任何帮助将不胜感激!

【问题讨论】:

  • 鉴于 Oracle 和 C# 没有被破坏,我们可以推断细节确实很重要,所以如果您可以提供它们,它将比其他提供推测性猜测的人容易得多。
  • 功能本身太长了..

标签: c# .net oracle-sqldeveloper


【解决方案1】:

没有人回复我的帖子,但无论如何解决方案都是用 oracle 事务包装所有内容

        using (OracleTransaction tran = myConnection.BeginTransaction())
{            
         StringBuilder sql = new StringBuilder("INSERT INTO Bakashot_Mll_TOCharge 
          (ID)" + "VALUES (:ID");

        using (OracleCommand cmd = new OracleCommand(sql.ToString(), myConnection))
                {
                    cmd.Transaction = tran;
                    AddTableParameters(cmd);

                    foreach (DataRow row in dt.Rows)
                    {
                        cmd.Parameters[":ID"].Value = row[0];                    
                        cmd.ExecuteNonQuery();
                    }

                }
     -----//this is the part that didnt work unless the debug mode was on\------
                using (OracleCommand com = new 
                          OracleCommand("Store_And_Delete", myConnection))
                {
                    com.Transaction = tran;
                    com.CommandType = CommandType.StoredProcedure;
                    com.ExecuteNonQuery();
                }
                tran.Commit();
                myConnection.Close();
            }

【讨论】:

    猜你喜欢
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 2016-03-15
    • 2021-12-04
    • 1970-01-01
    • 2019-07-28
    • 2014-07-13
    相关资源
    最近更新 更多