0

DataGridViewをDataTableにバインドしてアプリケーションを開発しています。したがって、今、私は1つのことを行う必要があります。ユーザーはいくつかのフィールドを編集でき、[保存]をクリックすると、アプリケーションはプログラムでいくつかのフィールドを変更する必要があります。このコードを使用しようとしていますが、機能しません。

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