[英]inserting from textbox and datagridview at sametime in database
如何在一张表中单击一键,同时从 datagridview 和文本框插入数据。 这是我使用 foreachloop 从 DataGridview 插入的代码,但它插入 null 任何帮助赞赏。
SqlCommand cmd, cmd1, cmd2, cmd3;
con.Open();
cmd = new SqlCommand("insert into sale_detail(sale_bill_number, discount,currency,date) values(@sale_bill_number, @discount ,@currency,@date)", con);
cmd.Parameters.AddWithValue("@sale_bill_number", billbox.SelectedItem);
cmd.Parameters.AddWithValue("@discount", txtdiscount.Text);
cmd.Parameters.AddWithValue("@currency", currencyid);
cmd.Parameters.AddWithValue("@date", dateTimePicker.Value.Date);
cmd1 = new SqlCommand("insert into payment(sdetail,totalprice) values(@sdetail,@totalprice)", con);
cmd1.Parameters.AddWithValue("@sdetail", sid);
cmd1.Parameters.AddWithValue("@totalprice", txtpayment.Text);
cmd2 = new SqlCommand("insert into sale(customer) values(@customer)", con);
cmd2.Parameters.AddWithValue("@customer", customerid);
foreach (DataGridViewRow dr in saleDataGridView.Rows)
{
string sqlquery = "insert into sale_detail(medicine_id,purchase_rate,quantity)values(@medicine_id,@purchase_rate, @quantity)";
cmd = new SqlCommand(sqlquery, con);
cmd.Parameters.AddWithValue("@medicine_id", dr.Cells["شماره مسلسل"].Value);
// cmd.Parameters.AddWithValue("@country", saleDataGridView.Rows[i].Cells["کشور"].Value);
cmd.Parameters.AddWithValue("@purchase_rate", dr.Cells["قیمت"].Value);
// cmd.Parameters.AddWithValue("@sale_rate", dr.Cells["قیمت فروش"].Value ??DBNull.Value);
cmd.Parameters.AddWithValue("@quantity", dr.Cells["تعداد"].Value);
}
if (cmd.ExecuteNonQuery() == 1)
{
if (cmd1.ExecuteNonQuery() == 1) {
if (cmd2.ExecuteNonQuery() == 1)
{
可能:
using con = new SqlCommand(...);
con.Open();
var tran = con.BeginTransaction();
var cmd = new SqlCommand("insert into sale_detail(sale_bill_number, discount,currency,date) values(@sale_bill_number, @discount ,@currency,@date)", con);
cmd.Parameters.AddWithValue("@sale_bill_number", billbox.SelectedItem);
cmd.Parameters.AddWithValue("@discount", txtdiscount.Text);
cmd.Parameters.AddWithValue("@currency", currencyid);
cmd.Parameters.AddWithValue("@date", dateTimePicker.Value.Date);
cmd.ExecuteNonQuery();
cmd = new SqlCommand("insert into payment(sdetail,totalprice) values(@sdetail,@totalprice)", con);
cmd.Parameters.AddWithValue("@sdetail", sid);
cmd.Parameters.AddWithValue("@totalprice", txtpayment.Text);
cmd.ExecuteNonQuery();
cmd = new SqlCommand("insert into sale(customer) values(@customer)", con);
cmd.Parameters.AddWithValue("@customer", customerid);
cmd.ExecuteNonQuery();
foreach (DataGridViewRow dr in saleDataGridView.Rows)
{
string sqlquery = "insert into sale_detail(medicine_id,purchase_rate,quantity)values(@medicine_id,@purchase_rate, @quantity)";
cmd = new SqlCommand(sqlquery, con);
cmd.Parameters.AddWithValue("@medicine_id", dr.Cells["شماره مسلسل"].Value);
// cmd.Parameters.AddWithValue("@country", saleDataGridView.Rows[i].Cells["کشور"].Value);
cmd.Parameters.AddWithValue("@purchase_rate", dr.Cells["قیمت"].Value);
// cmd.Parameters.AddWithValue("@sale_rate", dr.Cells["قیمت فروش"].Value ??DBNull.Value);
cmd.Parameters.AddWithValue("@quantity", dr.Cells["تعداد"].Value);
cmd.ExecuteNonQuery();
}
tran.Commit();
并将整个事情(除了使用)包装在一个 try catch 中(我会这样做,但我在手机上;没有代码缩进按钮)并放置tran.Rollback();
在捕获
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.