私は C# のデータベース (C# 自体ではない) とデータ バインディングの概念全体を操作することに非常に慣れていないので、そのことを心に留めておいてください。これに影響する場合は、SQL Server CE も使用しています。
VS2010 で構築された厳密に型指定されたデータセットを使用して SQL Server CE データベースにアクセスし、それに WinForms コントロールをバインドしてデータを表示しようとしています。コントロールを正常にバインドでき、現在データベースにあるデータは問題なく表示されます。新しいデータをデータベースに挿入することもできます。アプリケーションを再起動すると、挿入されたデータがコントロールに表示されます (具体的には ComboBox ですが、今後さらに使用する予定です)。
問題は、アプリを再起動するまで新しい行がまったく表示されないことです。データ バインディングに関する私の理解では、コントロールは自動的に更新されるはずです。INotifyPropertyChanged について読んだことがありますが、ここで使用するのが正しいかどうかわかりません。正しい場合は、行の挿入にどのように使用すればよいですか?
私はこのようにコンボボックスをバインドしています:
DataSet.tagDataTable tagdata = new tagTableAdapter().GetData();
comboBox1.DataSource = tagdata;
comboBox1.DisplayMember = tagdata.tagnameColumn.ColumnName;
comboBox1.ValueMember = tagdata.tagIDColumn.ColumnName;
そして次のように挿入します:
Guid g = Guid.NewGuid();
new tagTableAdapter().Insert(g, Name)
Name は、テキスト ボックスから取得した単なる文字列です。
ありがとう。
編集:私が使用しているDBテーブルはtagと呼ばれ、tagIDとtagnameの2つの列があることに言及する必要があります。tagID は GUID、tagname は varchar です。