2011-07-27 34 views
3

我正在創建一個網頁,其中有一系列對ListBoxes。在每一對中都有一個源(包含許多選項),然後您可以選擇一個選項(或多個選項)並將其添加到第二個列表框。使用SQL #tempdb將數據綁定()到列表框

我有一些永久表創建,其中包含源列表框的靜態成員;但是,我想使用「SELECT * INTO #tempsrc1 FROM src1」,然後將#tempsrc1綁定到ListBox。從那裏爲目標ListBox綁定創建#tempdst1。然後任何選擇都會相應地來回移動。

儘管綁定到永久數據庫非常簡單,但我對其餘部分的#tempdb設置有困難(如果它甚至可能),我對SQL很陌生,並且沒有對建築。

+0

感謝所有的洞察力,我相當新的一般asp和sql。最好的路線是重新設置這個設置。 – Hub3rt

+0

如果您認爲答案是相關且有幫助的,請點擊向上的指示三角形將其取消。通過點擊旁邊的複選標記,最好的答案應該被標記爲已接受。 –

+0

@Anders我沒有15分這樣做,否則我會 – Hub3rt

回答

1

我認爲你的設計是錯誤的。

臨時數據不應該保存在數據庫中,而應該保存在應用程序層中。在有兩個列表框的情況下,您可能可以使用列表框自行跟蹤這些項目。如果您需要保留與列表框中顯示的文本相關的數據,我建議將Dictionary<>放入Session對象中。

保持#temptable在不同的請求之間保持活躍狀態​​,這可能會使用不同的數據庫連接,這可能也很棘手。除非您將數據庫連接存儲在Session中,否則當連接池重置數據庫連接時,#temptables將會丟失。

+0

我害怕那個哈。我試圖使用數據庫的原因是,我使用的某些列表框控件清除了數據,除非它是數據綁定,並且綁定到類似數組列表的工作,可能不得不切換列表框。 列表框必須從數據庫填充,該網站是我的大學材料工程研究的大型數據庫,並且有許多選項供研究人員從技術選擇中選擇。 – Hub3rt

0

我遇到了同樣的問題,使用Winforms應用程序的臨時表。您的應用程序需要綁定到永久表,您無法綁定到存儲在SQL Server中的臨時表。

您可以創建一個將返回所需數據的存儲過程。

1

我會建議不要使用臨時數據庫。由於新連接的值可能會丟失。如果需要,使用永久表並將列表框數據放入緩存中。

1

源列表框具有selectedindexchanged事件。

使用該事件:
1)創建列表框項
2)設置列表框項=源
3)的所選擇的項目items.add或items.insert列表框項到目的地列表框。

這是非常標準的。但不要在數據庫中使用臨時表。正如@Andres所說,跟蹤你的應用層。唯一可以想到的例外是如果你需要跟蹤超出會議的範圍。

+0

由於某些原因,Obout列表框不保留數據而不是數據綁定。不能removeAt(i)沒有錯誤,因爲在列表框清除後,然後執行刪除,導致索引超出界限的問題。我猜想我不得不重新思考功能與列表框上的美觀 – Hub3rt