DataSetとTableAdapterを使用してDatagridviewにデータを入力しています。Datagridviewを使用すると、下部に新しいレコードを挿入できます。これで、Datagridviewに新しいレコードの値を入力しても、レコードがデータベースに自動的に保存されません。新しいレコードをデータベースに保存するために、どのイベントを処理する必要があるか、またはどのコードを記述する必要がありますか。
C#を使用しています。
DataSetとTableAdapterを使用してDatagridviewにデータを入力しています。Datagridviewを使用すると、下部に新しいレコードを挿入できます。これで、Datagridviewに新しいレコードの値を入力しても、レコードがデータベースに自動的に保存されません。新しいレコードをデータベースに保存するために、どのイベントを処理する必要があるか、またはどのコードを記述する必要がありますか。
C#を使用しています。
保存ボタンをどこかに置くことができ、ユーザーがそのボタンをクリックすると、次のようなメソッドが呼び出されます。
private void UpdateDataSet(DataSet dataSet)
{
// Check for changes with the HasChanges method first.
if(!dataSet.HasChanges(DataRowState.Modified)) return;
// Create temporary DataSet variable and
// GetChanges for modified rows only.
DataSet tempDataSet =
dataSet.GetChanges(DataRowState.Modified);
// Check the DataSet for errors.
if(tempDataSet.HasErrors)
{
// Insert code to resolve errors.
}
// After fixing errors, update the data source with
// the DataAdapter used to create the DataSet.
adapter.Update(tempDataSet);
}
Update()
でメソッドを呼び出していTableAdapter
ますか? 次のコードは、に関する MSDN の議論からのものTableAdapter
です。
try
{
this.Validate();
this.customersBindingSource.EndEdit();
this.customersTableAdapter.Update(this.northwindDataSet.Customers);
MessageBox.Show("Update successful");
}
catch (System.Exception ex)
{
MessageBox.Show("Update failed");
}
この種のロジックを配置できる場所はさまざまです。Davide Piras が示唆しているように、フォームに [保存] ボタンを配置したり、各行が入力されるたびにデータを保存したい場合は、RowValidated イベント ハンドラーを使用して保存ロジックを設定したりできます。 .