0

データグリッドビューに新しい行を追加する際に問題があります。Addボタンでやってほしい。このチュートリアルhttp://msdn.microsoft.com/en-us/library/fbk67b6z.aspxに基づいてバインドしたので、コードはほぼ同じに見えます。最初に、datagridviews バインドされたデータソースに新しい行を追加し、[更新] ボタンをクリックしてデータベースを更新することは可能ですか? 新しい行のテンプレートとして使用される、選択した行のクローンを取得できました。ご協力いただきありがとうございます。

4

2 に答える 2

0

使用できるのは、DataGridView の OnRowsAdded イベントです。このイベントへのリンクは次のとおりです: http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.onrowsadded.aspx。このイベントでは、追加された各行を繰り返し処理し、Insert ステートメントを使用してデータベースに挿入することができます。そのイベントを使用したことはありませんが、必要なもののようです。

編集:あなたの例でこれを見ました。

private void submitButton_Click(object sender, System.EventArgs e)
{
    // Update the database with the user's changes.
    dataAdapter.Update((DataTable)bindingSource1.DataSource);
}

DataGridView と送信ボタンに対して EditMode を有効にしている場合、これは機能しませんか? SqlDataAdapter にアクセスできる必要があるため、それをグローバル変数として宣言すると、送信ボタンのクリック イベントで使用できるようになります。

于 2012-09-12T13:49:41.373 に答える
0

まあ、私はそのようなことはできません dataGridView1.Rows.Add(selected_row); 例外がスローされます。また、データベースに行を挿入する方法がわかりません。– user1651521 1時間前

データバインドされたグリッドのデータグリッドに行を直接追加することはできません。バインドされたテーブルに新しい行を追加する必要があります。

したがって、その例と同じコードを使用している場合は、bindingsource オブジェクトのデータソースである DataTable に新しいレコードを追加します。だから、このようなもの:

private void addButton_Click(object sender, System.EventArgs e)
{
    //I'm assuming your datatable is a member level variable 
    //otherwise you could get it through the grid
    //have the datatable send you back a new row
    DataRow newRow = table.NewRow();
    //populate your new row with default data here
    //....
    //add the new row to the data table
    table.Rows.Add(newRow);
}
于 2012-09-12T15:22:41.100 に答える