1

私は、Visual Studio 2008 と .Net 3.5 を使用した新しいデータ レイヤーと SQLite を使用して、小さな C# ソサエティ メンバーシップ アプリを作成しています。

さまざまなウィザードを使用して、BindingNavigator と BindingSource を持つメイン フォームを生成しました。アイデアは、フォームに 1 つのレコードが表示され、レコードを更新し、BindingNavigator コントロールを使用して他のレコードに移動したり、レコードを追加したり、レコードを削除したりできるということです。

ユーザーが別のレコードに移動する (またはフォームを閉じる) たびに、現在のレコードがデータベースに書き戻されるようにしたいと考えています。

メンバー レコードには autonumber フィールドがあります (アプリの他の場所にある他のテーブルとの関係を持つつもりです)。

新しいレコードを追加する場合を除いて、すべて機能します。新しいレコードは保存されますが、その後データを更新しようとすると、タイトルにエラー メッセージが表示されます。

これは、データが保存されたときに、自動採番フィールドがデータセットのローカル コピーに追加されていないためだと思います。しかし、自動番号IDを取得して新しいレコードに詰め込むためのコードをどこに置くべきかについて、私は途方に暮れています。

データ テーブル用に生成されたコードの Insert メソッドにコードを配置することはできましたが、次にデザイナーで何かを変更したときに変更が失われ、加えて、Insert メソッドが実際に呼び出されるかどうかもわかりません (そこにブレークポイントを配置すると、止まらないようです)。

Google で回答を探したところ、データ テーブル デザイナーの詳細構成設定で [更新後に更新] チェックボックスをオンにするという提案が見つかりましたが、生成されたコードは変更されず、何の効果もありませんでした (そして、戻ったときに見てみると、チェックボックスは再びチェックされていませんでした)。

補足質問 - DataBindingNavigator、DataBindingSource、および新しく生成されたデータ クラスがどのように組み合わされるかの概要を読むのに最適な場所はどこですか?

最後に、私からの別の同様の質問を見かけたら、お詫び申し上げます。昨日質問したと断言できたのですが、ここで見つからないので、投稿されなかったと思います。

4

0 に答える 0