2

私は最近、1 つのページに多くのグリッドビューを持つプロジェクトに取り組み始めました。新しいレコードの作成中、ユーザーはこれらのグリッドビューを追加/削除/編集し、最後にデータベースに保存できる必要があります。これに関する問題は明らかに、データがデータベースに書き込まれるまでデータをバインドするデータソースがないことです。

このデータは 1..* の関係を表します。これが、親レコードが最初に作成されるまで gridview データをデータベースに書き込むことができない理由です。

これを解決するためにこれまでに見つけた最良の方法は、ビューステートを使用することです。ただし、このソリューションは私には理想的ではないようです。また、ビューステートとグリッドビューのバインディングを管理できるように、OnDeleting、OnUpdating などを使用してグリッドビュー機能を手動で作成する必要があります。

この状況を管理するためのより良い方法について誰か提案がありますか?それは一般的なことのようです?

アップデート:

このデータは、ポストバック全体で存在する必要があることに注意してください。

4

2 に答える 2

1

データ ソースへの中間接続として DataSet を使用します。DataSet にデータを入力し、GridView を DataSet にバインドして、GridView DataMember をバインド先のテーブルの名前に設定します。

ユーザーがテーブルを更新すると、DataSet の DataTables にレコードが追加/変更されます。ユーザーが編集を完了して [保存] をクリックすると、DataAdapter を使用して自動的に、または DataTables 内の行の RowState を手動で確認して、コードでデータセットからデータベースを更新できます。

于 2008-12-11T01:06:27.277 に答える
0

DataAdapter とデータセットを使用します。アダプターで fillschema メソッドを呼び出して、データセットにメタデータ (列、制約、関係など) を作成します。作成されたデータ テーブルをさまざまなグリッド ビューにバインドします。各テーブルの各行の行状態を手動でチェックして更新するか、アダプターの更新メソッドを呼び出して自動的に更新します。自動的に行う場合は、アダプターで挿入、削除、および更新のコマンドを定義する必要があります。

于 2008-12-11T01:16:59.610 に答える