【问题标题】:Insert Data to Database - LINQ将数据插入数据库 - LINQ
【发布时间】:2015-06-11 17:06:25
【问题描述】:

我的datagridview 中有一些数据。我想使用 LINQ 从datagridview 一次将所有这些数据插入数据库。但是,无法插入。

这是我的代码:

DetailTransaction dt = new DetailTransaction();

for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
    dt.TransactionID = labelID.Text;
    dt.ProductID = dataGridView1.Rows[i].Cells[0].Value.ToString();
    dt.Quantity = int.Parse(dataGridView1.Rows[i].Cells[4].Value.ToString());
}

dc.DetailTransactions.InsertOnSubmit(dt);
dc.SubmitChanges();

谁能告诉我正确的代码是什么?

【问题讨论】:

    标签: c# database linq


    【解决方案1】:

    您需要填充DetailTransaction 的集合,然后使用InsertAllOnSubmit,例如:

    List<DetailTransaction > list = new List<DetailTransaction>();
    
    for (int i = 0; i < dataGridView1.Rows.Count; i++)
    {
        DetailTransaction dt = new DetailTransaction();
        dt.TransactionID = labelID.Text;
        dt.ProductID = dataGridView1.Rows[i].Cells[0].Value.ToString();
        dt.Quantity = int.Parse(dataGridView1.Rows[i].Cells[4].Value.ToString());
        list.Add(dt);
    }
    dc.DetailTransactions.InsertAllOnSubmit(list);
    dc.SubmitChanges();
    

    使用您当前的代码,您最终会在数据库中插入一行,并且该行将保存 dataGridView1 中最后一行的记录

    【讨论】:

    • 我已经尝试过该代码。但是有一些错误消息:对象引用未设置为对象的实例。此消息位于 dt.ProductID = dataGridView1.Rows[i].Cells[0].Value.ToString();错误在哪里?在数据网格视图中?谢谢
    • @KemikoSetiawan,表示Cell[0]或某行有空值,明确检查,然后调用ToString就可以了
    猜你喜欢
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 2020-07-05
    • 2023-04-10
    • 2021-10-21
    相关资源
    最近更新 更多