データグリッドビューに新しい行を追加する際に問題があります。Addボタンでやってほしい。このチュートリアルhttp://msdn.microsoft.com/en-us/library/fbk67b6z.aspxに基づいてバインドしたので、コードはほぼ同じに見えます。最初に、datagridviews バインドされたデータソースに新しい行を追加し、[更新] ボタンをクリックしてデータベースを更新することは可能ですか? 新しい行のテンプレートとして使用される、選択した行のクローンを取得できました。ご協力いただきありがとうございます。
2 に答える
使用できるのは、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 にアクセスできる必要があるため、それをグローバル変数として宣言すると、送信ボタンのクリック イベントで使用できるようになります。
まあ、私はそのようなことはできません 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);
}