重复输入''关键' PRIMARY'

时间:2016-10-08 18:35:35

标签: c# mysql system

在我的数据库中,收银台和ID是主键

foreach (ListViewItem li in listView2.Items)
{
    string sql = @"INSERT INTO tblrecord values 
    (@ID,@Description,@Price,@Quantity,@TotalSum,@Type,@Size,@Brand,@DateTime)"; 

    cm.Parameters.AddWithValue("@ID", txtID.Text);
    cm.Parameters.AddWithValue("@Description", txtDesc.Text);
    cm.Parameters.AddWithValue("@Price", txtPrice.Text);
    cm.Parameters.AddWithValue("@Quantity", txtQuantity.Text);
    cm.Parameters.AddWithValue("@TotalSum", txtSum.Text);
    cm.Parameters.AddWithValue("@Type", txtType.Text);
    cm.Parameters.AddWithValue("@Size", txtSize.Text);
    cm.Parameters.AddWithValue("@Brand", txtBrand.Text);
    cm.Parameters.AddWithValue("@DateTime", lblDate.Text);

    cm.ExecuteNonQuery(); //ExecuteNonQuery passes a connection string to database or SQL.

    string sql2 = @"INSERT INTO tblcashierrecord values 
    (@Cashier,@PID,@Descrip,@Price,@Quantity,@TotalSum,@Type,@Size,@Brand,@DateTime)";                  
    cm.Parameters.AddWithValue("@Cashier", lblUser.Text);
    cm.Parameters.AddWithValue("@PID", txtID.Text);
    cm.Parameters.AddWithValue("@Descrip", txtDesc.Text);
    cm.Parameters.AddWithValue("@Price", txtPrice.Text);
    cm.Parameters.AddWithValue("@Quantity", txtQuantity.Text);
    cm.Parameters.AddWithValue("@TotalSum", txtSum.Text);
    cm.Parameters.AddWithValue("@Type", txtType.Text);
    cm.Parameters.AddWithValue("@Size", txtSize.Text);
    cm.Parameters.AddWithValue("@Brand", txtBrand.Text);

    cm.Parameters.AddWithValue("@DateTime", lblTimer.Text);
    cm.ExecuteNonQuery();

}

1 个答案:

答案 0 :(得分:0)

“foreach”是一个循环。 在每次迭代中,ID都填充了txtID.text的内容 因此,第二次迭代将为您提供重复的键错误。