将数据库中的所选项存储在同一行中

时间:2018-01-20 20:52:44

标签: database exception checkedlistbox

我遇到了问题。 我在清单框中有一些项目,我想在表格中添加所选项目的名称。但是当我使用这段代码时。

        con.Open();


        foreach (object item in chkOrder.CheckedItems)
        {
            string selectedItems = item.ToString();

            SqlCommand cmd = con.CreateCommand();

            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "INSERT INTO Kitchen (Order_ID,Customer_ID,Reservation_ID,Customer_Name,Charges,Order_Name) VALUES ('" + txtOrderID.Text + "','" + txtCustomerID.Text + "','" + txtReservationID.Text + "','" + txtCustomerName.Text + "','" + allOrders + "',@Order_name)";
            cmd.Parameters.AddWithValue("@Order_Name",selectedItems);
            cmd.ExecuteNonQuery();
        }

        con.Close();

它会引发异常。

注意:" Order_ID"是一把钥匙。

System.Data.SqlClient.SqlException: 'Violation of PRIMARY KEY constraint 'PK_Kitchen'. Cannot insert duplicate key in object 'dbo.Kitchen'. The duplicate key value is (1).
The statement has been terminated.'

我该怎么办? 请帮助。

1 个答案:

答案 0 :(得分:0)

您可以将参数AUTO_INCREMENT添加到PRIMARY KEY,而不是手动插入,这样您的数据库就可以处理它,或者您可以在代码中增加它。