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を返すと思っていましたが、今ではそれが誤りであることがわかりました。決定を教えてください。前もって感謝します。