Ich versuche, Datagridview Wert und Textbox simultan nach einem Klick eingefügt, aber die Daten wurden in der Datenbank dupliziert.Doppelte Daten in der Datenbank
Kann mir jemand sagen, was das Problem in meinem Code ist, bitte?
Mein Code
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);
}
}
Hier wird der gesamte Code für die Schaltfläche Ereignis.
wo dieser Code geschrieben und ausgeführt? vielleicht wird diese Methode zweimal aufgerufen! – techspider
Wenn Sie dies debuggen, wie oft wiederholt diese Schleife? Enthält 'dgvOrder.Rows' eine Zeile, die Sie nicht erwarten? – David
Gibt es zwei Zeilen in Ihrem Datagrid? TippForeach (DataGridViewRow-Zeile in dgvOrder.Rows) –