繁体   English   中英

在数据库中同时从文本框和数据网格视图插入

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM