0

DataSetとTableAdapterを使用してDatagridviewにデータを入力しています。Datagridviewを使用すると、下部に新しいレコードを挿入できます。これで、Datagridviewに新しいレコードの値を入力しても、レコードがデータベースに自動的に保存されません。新しいレコードをデータベースに保存するために、どのイベントを処理する必要があるか、またはどのコードを記述する必要がありますか。

C#を使用しています。

4

2 に答える 2

1

保存ボタンをどこかに置くことができ、ユーザーがそのボタンをクリックすると、次のようなメソッドが呼び出されます。

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);
}
于 2011-09-14T12:44:37.143 に答える
0

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 イベント ハンドラーを使用して保存ロジックを設定したりできます。 .

于 2011-09-14T12:47:59.133 に答える