2011-07-27 4 views
3

私は一連のペアがあるウェブページを作成していますListBoxes。各ペアには、オプション(または複数)を選択して2番目のリストボックスに追加できるソース(多数のオプションを含む)があります。SQL#tempdbを使用してListBoxにdatabind()を実行する

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

永続的なデータベースへのバインドは簡単ですが、残りの部分の#tempdb設定へのバインド(それは可能であれば)に問題があります。私はSQLにはかなり新しく、建築。

+0

すべての洞察に感謝しています。私はかなり一般的にaspとSQLに新しいです。最良のルートは、この設定を再ツールすることです。 – Hub3rt

+0

回答が関連して役に立つと思われる場合は、上向きの三角形をクリックして回答をアップしてください。ベストであった答えは、その隣にあるチェックマークをクリックすることで受け入れられたものとしてマークする必要があります。 –

+0

@アンダー私はまだ15ポイントを持っていません...そうでなければ私は – Hub3rt

答えて

1

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

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

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

+0

私はそのことを恐れていました。私がデータベースを使用しようとしていた理由は、私が使用している特定のリストボックスコントロールが、データバインドされていなければ投稿のデータをクリアし、arraylistの仕事のようなものにバインドすると、リストボックスを切り替えなければならない可能性があるからです。 リストボックスはデータベースから作成する必要があります。ウェブサイトは私の大学の材料工学研究のための大きなデータベースです。研究者がテクニックとして選択する多くのオプションがあります。 – Hub3rt

0

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

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

1

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

1

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

にそのイベントを使用する:
1)リストボックスの項目
2を作成する)に設定リストボックスの項目=源
3の選択された項目)はitems.add又は目的地のリストボックスにリストボックスの項目をitems.insert。

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

+0

Obout ListBoxesは何もしませんデータがなくても投稿のデータ。ポストではリストボックスがクリアされ、その後に削除が実行され、インデックスの範囲外の問題が発生するため、エラーなしでremoveAt(i)を実行できません。私はリストボックス上で機能性と見栄えを再考しなければならないと思う – Hub3rt

関連する問題