0

在下面的代码中,如果选定的行是新行,我试图将选定的 datagridview 行添加到 datagridview 的数据源中,但它只将“DataGridViewRow { Index=0 }”添加到该行的第一列并且该行的其余部分为空

    if (dataGridView1.SelectedRows[0].IsNewRow)
        {
            _dt.Rows.Add(dataGridView1.SelectedRows[0]);
            dataGridView1.DataSource = null;
            dataGridView1.DataSource = _dt;
        }

        DataTable dtUpdated = (DataTable)dataGridView1.DataSource;
        dtUpdated.GetChanges();

        SqlCommandBuilder cb = new SqlCommandBuilder(_sqlDa);

        try
        {

            _sqlDa.Update(dtUpdated);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());

        }
4

1 回答 1

0

正如 Dan 上面提到的,Datatable 是与网格绑定的,所以每当您添加新行或更改该新行中的任何文本时,都会自动将新行和更新的值更新到 _dt。

如果您仍然感到困惑或遇到与上述相同的问题,请不要将“dataGridView1.SelectedRows [0]”添加到_dt.Rows,因为SelectedRows 是对象“DataGridViewSelectedRowCollection”的集合,因此最好将SelectedRows 转换为Datarow 或您可以使用 '_dt.​​Rows.Add(params Object[] values)' 的另一个重载函数

于 2012-09-07T09:31:31.997 回答