Exemple #1
0
 /// <summary>
 /// 执行事务,不主动提交
 /// </summary>
 /// <param name="operations"></param>
 public bool ExecuteTranNoCommit(IDBOperation[] operations)
 {
     if (sqlHelper.BeginTransaction())
     {
         try
         {
             foreach (IDBOperation op in operations)
             {
                 op.Execute(sqlHelper);
             }
             return(true);
         }
         catch (Exception)
         {
             sqlHelper.RollBackTransaction();
             this.Close();
             return(false);
         }
     }
     else
     {
         LogTool.LogWriter.WriteError("开启数据库事务失败。");
         throw new Exception("开启数据库事务失败。");
     }
 }
Exemple #2
0
        public bool SaveInfo(RecordInfo info, GwType type)
        {
            string sql = @" INSERT INTO RecordInfo (FGWID,FAssemblyID,FBar,FCustBar,FDate) values 
                             (@gwID,@assemblyID,@codeRule,@custBar,GETDATE());select SCOPE_IDENTITY();";

            string sql1 = @"INSERT INTO RecordInfoEntry (FInterID,FCode) VALUES(@Id,@codeRule) ";
            string sql2 = @"INSERT INTO RecordInfoEntry1 (FInterID,FValue) VALUES(@Id,@value) ";

            string update = @"UPDATE RecordInfo SET FCustBar = @cust WHERE FBar = @bar";
            string sql3   = @"select FBar from RecordInfo where FCustBar = @cust";

            using (var conn = new DbHelperSQL(config).GetConnection())
            {
                conn.Open();
                SqlTransaction tran = conn.BeginTransaction();
                try
                {
                    if (type == GwType.OP70) // 绑定客户条码
                    {
                        if (!string.IsNullOrEmpty(info.FBar) && !string.IsNullOrEmpty(info.FCustBar))
                        {
                            SqlCommand up1 = new SqlCommand(update, conn, tran);
                            up1.Parameters.AddWithValue("@cust", info.FCustBar);
                            up1.Parameters.AddWithValue("@bar", info.FBar);

                            up1.ExecuteNonQuery();
                        }
                    }
                    else if (type == GwType.OP80)
                    {
                        if (!string.IsNullOrEmpty(info.FCustBar))
                        {
                            info.FBar = conn.QuerySingleOrDefault <string>(sql3, new { cust = info.FCustBar });
                        }
                    }

                    SqlCommand cmd = new SqlCommand(sql, conn, tran);
                    cmd.Parameters.AddWithValue("@gwID", info.FGWID);
                    cmd.Parameters.AddWithValue("@assemblyID", info.FAssemblyID);
                    cmd.Parameters.AddWithValue("@codeRule", info.FBar);
                    cmd.Parameters.AddWithValue("@custBar", info.FCustBar);

                    long id = Convert.ToInt64(cmd.ExecuteScalar());
                    // 零件条码
                    if (info.entries != null)
                    {
                        if (info.entries.Any())
                        {
                            foreach (var l in info.entries)
                            {
                                SqlCommand cmd1 = new SqlCommand(sql1, conn, tran);
                                cmd1.Parameters.AddWithValue("@Id", id);
                                cmd1.Parameters.AddWithValue("@codeRule", l.FCode);

                                cmd1.ExecuteNonQuery();
                            }
                        }
                    }
                    // 气检数据
                    if (info.entries1 != null)
                    {
                        if (info.entries1.Any())
                        {
                            foreach (var l in info.entries1)
                            {
                                SqlCommand cmd1 = new SqlCommand(sql2, conn, tran);
                                cmd1.Parameters.AddWithValue("@Id", id);
                                cmd1.Parameters.AddWithValue("@value", l.FVaule);

                                cmd1.ExecuteNonQuery();
                            }
                        }
                    }



                    tran.Commit();
                    return(true);
                }
                catch (Exception ex)
                {
                    log.Error(ex.Message);
                    tran.Rollback();
                    return(false);
                }
            }

            #endregion
        }