3

一連のペアを含む Web ページを作成していListBoxesます。各ペアには、オプション (または複数) を選択して 2 番目のリストボックスに追加できるソース (多くのオプションを含む) があります。

ソースリストボックスの静的メンバーを含むいくつかの永続テーブルを作成しました。ただし、「」を使用してから、ListBoxSELECT * INTO #tempsrc1 FROM src1にバインドしたいと思います。#tempsrc1そこから #tempdst1 が宛先 ListBox バインディング用に作成されます。その後、選択はそこから前後に移動されます。

永続的なデータベースへのバインドは簡単ですが、残りの #tempdb セットアップへのバインドに (可能であれば) 問題があります。私は SQL にまったく慣れておらず、アーキテクチャをしっかりと理解していません。

4

4 に答える 4

1

あなたのデザインは間違っていると思います。

一時データはデータベースではなく、アプリケーション層に保持する必要があります。2 つのリストボックスの場合、おそらくリストボックス自体を使用して項目を追跡できます。リストボックスに表示されるテキストに関連するデータを保持する必要がある場合はDictionary<>Sessionオブジェクトに a を入れることをお勧めします。

おそらく異なるデータベース接続を利用する異なるリクエスト間で #temptable を維持するのも難しいかもしれません。データベース接続を保存しない限りSession、接続プールがデータベース接続をリセットすると #temptables が失われると思います。

于 2011-07-27T16:55:34.567 に答える
1

ソース リストボックスには selectedindexchange イベントがあります。

そのイベントを使用して:
1) リストボックス項目を作成する
2) リストボックス項目 = ソースの選択された項目を設定する
3) リストボックス項目を宛先リストボックスに items.add または items.insert する。

これはかなり標準的です。ただし、データベースで一時テーブルを使用しないでください。@Andresが言うように、アプリケーション層で追跡してください。In が考えられる唯一の例外は、セッションの範囲を超えて追跡する必要がある場合です。

于 2011-07-27T17:04:36.207 に答える
1

一時データベースを使用しないことをお勧めします。新しい接続では値が失われる可能性があるため。永続テーブルを使用し、必要に応じてリストボックス データをキャッシュに入れます。

于 2011-07-27T16:59:35.530 に答える
0

winforms アプリケーションの一時テーブルの操作で同じ問題に遭遇しました。アプリケーションは永続テーブルにバインドする必要があります。SQL サーバーに格納されている一時テーブルにバインドすることはできません。

必要なデータを返すストアド プロシージャを作成できます。

于 2011-07-27T16:56:55.583 に答える