在我的数据库中,收银台和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();
}
答案 0 :(得分:0)
“foreach”是一个循环。 在每次迭代中,ID都填充了txtID.text的内容 因此,第二次迭代将为您提供重复的键错误。