ユーザーがデータベース内のテーブルの行を編集できるようにする単純な C# アプリケーションを構築しています。インターフェイスは非常にシンプルで、基本的には行のリストといくつかのボタンです。行を選択して [追加] ボタンを押すと、各列のテキスト ボックスを含む新しいフォームがポップアップ表示されます。これらの列に、選択した行の値を入力したいと考えています。
いくつかの記事を読んだ後、おそらくこれを行う最も簡単な方法は、TextBox の Text プロパティを DataSource にバインドすることであることがわかりました。そのため、データベースからの値を DataTable オブジェクトに格納し、選択した DataRow を取得して TextBox にバインドする計画を立てました。これは私が使用する行です:
productNameTextBox.DataBindings.Add(new Binding("Text", productRow, "Name"));
結果は次の例外です。
タイプ 'System.ArgumentException' の初回例外が System.Windows.Forms.dll で発生しました DataSource のプロパティまたは列 Name にバインドできません。パラメータ名: dataMember
はい、「名前」列は存在します。
バインディングのドキュメント (http://msdn.microsoft.com/en-us/library/4wkkxwcz(v=VS.80).aspx) と多くの例に従って読んだ後、バインドする必要があるように思えます行が含まれているDataTable。次のコードは私にとってはうまくいきました:
productNameTextBox.DataBindings.Add(new Binding("Text", productRow.Table, "Name"));
ただし、常に TextBox の値を最初の行に設定します。使用する行を指定するにはどうすればよいですか?