public void AddColor(CColorModel color)
        {
            string sql = "INSERT INTO Color(ColorCode,ColorName,Re)Values('" + color.ColorCode + "','" + color.ColorName + "','" + color.Re + "')";
            using (SqlConnection conn = new SqlConnection(connetion))
            {
                conn.Open();
                SqlTransaction tran = conn.BeginTransaction();
                SqlCommand cmd = new SqlCommand(sql, conn);
                cmd.Transaction = tran;
                cmd.ExecuteNonQuery();
                tran.Commit();
                //下面会插入两次 ????
                  if (cmd.ExecuteNonQuery() > 0)
                    MessageBox.Show("颜色【" + color.ColorName + "】添加成功!", "信息");
                else
                    MessageBox.Show("颜色【" + color.ColorName + "】添加失败,录入的信息不完整!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }           
        }[code]
/*  if (cmd.ExecuteNonQuery() > 0)
                    MessageBox.Show("颜色【" + color.ColorName + "】添加成功!", "信息");
                else
                    MessageBox.Show("颜色【" + color.ColorName + "】添加失败,录入的信息不完整!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
*/[/code]不要的话 就没问题 

解决方案 »

  1.   

    if (cmd.ExecuteNonQuery() > 0)
                        MessageBox.Show("颜色【" + color.ColorName + "】添加成功!", "信息");
                    else
                        MessageBox.Show("颜色【" + color.ColorName + "】添加失败,录入的信息不完整!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);不要的话 就没问题 
      

  2.   

     public void AddColor(CColorModel color)
            {
                string sql = "INSERT INTO Color(ColorCode,ColorName,Re)Values('" + color.ColorCode + "','" + color.ColorName + "','" + color.Re + "')";
                using (SqlConnection conn = new SqlConnection(connetion))
                {
                    conn.Open();
                    SqlTransaction tran = conn.BeginTransaction();
                    SqlCommand cmd = new SqlCommand(sql, conn);
                    cmd.Transaction = tran;
                    int iReturn = cmd.ExecuteNonQuery();
                    tran.Commit();
                    //下面会插入两次 ????
                      if (iReturn  > 0)
                        MessageBox.Show("颜色【" + color.ColorName + "】添加成功!", "信息");
                    else
                        MessageBox.Show("颜色【" + color.ColorName + "】添加失败,录入的信息不完整!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }           
            }
      

  3.   

    当然的,cmd.ExecuteNonQuery()就是执行了一次
    你在第一次执行的时候应该写
    int count =cmd.ExecuteNonQuery()
      

  4.   

     public void AddColor(CColorModel color)
            {
                string sql = "INSERT INTO Color(ColorCode,ColorName,Re)Values('" + color.ColorCode + "','" + color.ColorName + "','" + color.Re + "')";
                using (SqlConnection conn = new SqlConnection(connetion))
                {
                    conn.Open();
                    SqlTransaction tran = conn.BeginTransaction();
                    SqlCommand cmd = new SqlCommand(sql, conn);
                    cmd.Transaction = tran;
                    cmd.ExecuteNonQuery();
                    tran.Commit();
                    //下面会插入两次 ????
                      if (cmd.ExecuteNonQuery() > 0)
                        MessageBox.Show("颜色【" + color.ColorName + "】添加成功!", "信息");
                    else
                        MessageBox.Show("颜色【" + color.ColorName + "】添加失败,录入的信息不完整!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }           
            }你明显执行了两次,要是不插入两次还就错了呢。
      

  5.   

    谢谢 , 还有注释tran.commit();
     我要问 为什么会INSERT 两次?