1
我试图插入datagridview值和文本框后单击一个按钮,但数据在数据库中重复。重复数据库中的数据
谁能告诉我什么是在我的代码的问题,好吗?
我的代码
private void btnPay_Click(object sender, EventArgs e)
{
decimal pay, balance, total;
total = decimal.Parse(txtNetTotal.Text);
pay = decimal.Parse(txtCash.Text);
balance = pay - total;
txtCash.Text = pay.ToString("0.00");
txtBalance.Text = balance.ToString("0.00");
try
{
foreach (DataGridViewRow row in dgvOrder.Rows)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["conStr"].ConnectionString);
SqlCommand cmd = new SqlCommand("insert into tblOrder (ProductName,Quantity,ProductPrice,TotalPrice,Cash,Balance)" +
"values (@ProductName,@Quantity,@ProductPrice,@TotalPrice,@Cash,@Balance)", con);
cmd.Parameters.AddWithValue("@ProductName", Convert.ToString(row.Cells["colProduct"].Value));
cmd.Parameters.AddWithValue("@Quantity", Convert.ToString(row.Cells["colQuantity"].Value));
cmd.Parameters.AddWithValue("@ProductPrice", Convert.ToString(row.Cells["colPrice"].Value));
cmd.Parameters.AddWithValue("@TotalPrice", txtTotal.Text.Trim());
cmd.Parameters.AddWithValue("@Cash", txtCash.Text.Trim());
cmd.Parameters.AddWithValue("@Balance", txtBalance.Text.Trim());
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
catch(SqlException ex)
{
MessageBox.Show(ex.Message);
}
}
这里按钮事件的整个代码。
这是哪里的代码写入和执行?可能是这种方法被称为两次! – techspider
当你调试这个时,这个循环迭代多少次? 'dgvOrder.Rows'包含一个你不期望的行吗? – David
数据网格中有两行吗? hint-foreach(dgvOrder.Rows中的DataGridViewRow行) –