0

我一直在开发一些将 DataGridView 绑定到 DataTable 的应用程序。所以,现在我需要做一件事:用户可以编辑一些字段,当他点击“保存”时,应用程序必须以编程方式更改一些字段。我正在尝试使用此代码,但它不起作用:

private void toolStripMenuItemSaveChanges_Click(object sender, EventArgs e)
{   
    try
    {
        dataGridViewPersons.BindingContext[table].EndCurrentEdit();
        //
        DataTable changes = table.GetChanges();
        if (changes != null)
        {
            Console.WriteLine("edited rows=" + table.GetChanges().Rows.Count);

            foreach (DataRow row in changes.Rows)
            {
                row[29] = getRightBody(row, 7, 18);
                row[30] = "-";
                row[31] = getRightBody(row, 23, 25);
                row[32] = getRightBody(row, 26, 28);
            }
        }
        else
        {
            Console.WriteLine("edited rows=0");
        }

        adapter.Update(table);              
    }
    catch (Exception exeption)
    {
        this.Text = exeption.Message;
    }
}

如果存在已编辑的行,则此代码不会更改绑定的 DataTable 中的字段;我认为 GetChanges() 返回 DataTable 与原始 DataTable 的关系,但现在我知道它是错误的。请告诉我决定。先感谢您。

4

0 回答 0