将datagridview行添加到datatable

时间:2012-09-07 08:16:51

标签: c#

在下面的代码中,我试图将所选的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());

        }

1 个答案:

答案 0 :(得分:0)

正如Dan上面提到的,Datatable与网格绑定,因此无论何时添加新行或更改该新行中的任何文本,新行和更新的值都将更新为_dt。

你仍然困惑或得到与上面说的相同的问题然后不要将'dataGridView1.SelectedRows [0]'添加到_dt.Rows,因为SelectedRows是对象'DataGridViewSelectedRowCollection'的集合,所以最好将SelectedRows转换为Datarow或者您可以使用'_dt.​​Rows.Add(params Object [] values)'的另一个重载函数