foreverhot1019 2018-06-02 12:17 采纳率: 0%
浏览 1096
已结题

SQL 事务 有时执行不对,也没有报错

我也很疑惑,有时 执行成功 有时失败,而且不报错。 OPERATIONFLAG 和WORKNO 都是NVarchar ID number 类型
List sqlList = new List();
sqlList.Add("update ASN_ORDER_HEADS set OPERATIONFLAG = '' where OPERATIONFLAG in (select WORKNO from ORDERS_REFORM_HEADS where ID = '" + OrderId + "') ");//大多情况执行成功
sqlList.Add("update SO_ORDER_HEADS set OPERATIONFLAG = '' where OPERATIONFLAG in (select WORKNO from ORDERS_REFORM_HEADS where ID = '" + OrderId + "') ");//大多情况执行成功
sqlList.Add("delete from ORDERS_REFORM_DETAILS where ORDERS_REFORM_HEADID = '" + OrderId + "'");//这条每次 都执行成功

                            /// <summary>
    /// 执行多条SQL语句,实现数据库事务。
    /// </summary>
    /// <param name="SQLStringList">多条SQL语句</param>     
    public static int ExecuteSqlTran(System.Collections.Generic.List<String> SQLStringList)
    {
        int ret = 0;
        using (SqlConnection p_Conn = new SqlConnection(CONN_STRING_NON_DTC))
        {
            p_Conn.Open();
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = p_Conn;
            SqlTransaction tx = p_Conn.BeginTransaction();
            cmd.Transaction = tx;
            try
            {
                foreach (string sql in SQLStringList)
                {
                    if (!String.IsNullOrEmpty(sql))
                    {
                        cmd.CommandText = sql;
                        ret += cmd.ExecuteNonQuery();
                    }
                }
                tx.Commit();
            }
            catch (Exception E)
            {
                tx.Rollback();
                //throw new Exception(E.Message);
                ret = 0;
            }
            finally
            {
                if (p_Conn.State != ConnectionState.Closed)
                {
                    p_Conn.Close();
                }
            }
            return ret;
        }
    }
  • 写回答

3条回答 默认 最新

  • weixin_42243091 2018-06-02 13:09
    关注

    程序运行过程中处于锁的状态,直到程序结束后,释放事务,数据不会被更新

    评论

报告相同问题?

悬赏问题

  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程