如何在DataGridView中插入添加的行和UPDATE编辑的行?

时间:2016-10-15 23:10:11

标签: c# winforms datagridview

我有一个表单,显示有关购买的信息,在此表单中,我有一个DataGridView,其列是根据数据库中的表动态生成的。此DGV包含有关所选购买中的项目的信息。

以下是我在现有DataGridView中如何在运行时生成列的示例:

            foreach (ColumnDGV columnDGV in columnsDGV)
            {
                DataGridViewTextBoxColumn col = new DataGridViewTextBoxColumn();
                col.Name = columnDGV.A02_CAMPO;
                col.HeaderText = columnDGV.A02_TITULO;
                col.DataPropertyName = columnDGV.A02_CAMPO;
                this.dataGridView.Columns.Add(col);
            }

对象ColumnDGV包含有关要创建的列的信息。

然后我选择列'列列表中的名称,并根据这些列执行sql查询:

    private void CarregarConteudoDGV()
    {
        SolicitCompraBLL solicitCompraBLL = new SolicitCompraBLL();

        // Gets the columns' names to be used in the SELECT statement.
        List<string> columnsNames = this.CamposDGV.Select(c => c.A02_CAMPO).ToList();

        // Returns a DataTable containing the items of the selected purchase.
        this.dataGridView.DataSource = solicitCompraBLL.ObterItensSolicitacao(columnsNames, this.B11_NUM);
    }

当用户点击保存按钮时,我只是遍历DGV中的所有行并将其值添加到嵌套列表中,其中每个项目都是字符串[2]的列表,其中位置0包含列名称和位置1它的价值。然后我将此List传递给一个创建sql命令以更新记录的方法。

我已经可以保存数据库中每个项目的更改,但我还必须插入添加的项目。我如何知道应该插入哪些项目以及应该更新哪些项目?

1 个答案:

答案 0 :(得分:1)

在DataBase中插入对象时,通常您的对象还没有ID。要更新的对象必须已存在其ID。现在您应该看到对象是否具有Id。如果Id为零(或不存在),则插入它,否则更新它。