2012-06-18 32 views
0

根據所選主鍵從數據庫獲取記錄的最佳方式是什麼?根據使用複合主鍵的多個記錄查詢結果

我能夠從gridview中獲取所選(檢查)行的主鍵,現在需要從數據庫中檢索這些選定複合主鍵的相應記錄。

如果這些行僅使用一個主鍵,則會更容易。我可以直接連接主鍵(逗號分隔)並在WHERE IN子句中使用它。但行使用三個主鍵(INT,INT,字符串)

我想使用選擇加入的(一個選擇每組主鍵,然後再加入所有的選擇),但我不知道這是做到這一點的最佳方式。

處理這個問題的最佳方法是什麼?

在此先感謝。

尼基

[更新] - 無法回覆個人意見,我可能沒有足夠權限的還,所以在這裏更新後予以明確。

下面是我在做什麼的例子:

數據從一個數據庫表來與複合鍵:

TABLE1 
KeyCol1 INT (Primary Key), 
KeyCol2 STRING (Primary Key), 
KeyCol3 INT (Primary Key), 
Col4 Decimal, 
Col5 STRING, 
Other columns . . . 

PAGE 1 GRIDVIEW 1:

Sel |KeyCol1 |KeyCol2 |KeyCol3 |Col4 |Col5   |Other Columns . . . 
[ ] |100  |CODE1 |01  |10.05 |Description 1 |. . . 
[/] |100  |CODE1 |02  | 5.03 |Description 2 |. . . 
[ ] |100  |CODE2 |01  |12.45 |Description 4 |. . . 
[/] |102  |CODE1 |01  |21.50 |Description 1 |. . . 
[/] |102  |CODE2 |01  | 9.10 |Description 5 |. . . 
[/] |102  |CODE3 |03  | 7.15 |Description 1 |. . . 

。 。 。然後點擊頁面1上的一個按鈕(例如「取消記錄」)後,我需要獲取這些行,以顯示到另一個頁面,例如此:

PAGE 2 WITH GRIDVIEW 2

KeyCol1 |KeyCol2 |KeyCol3 |Col4 |Other Colums |Reason 
100  |CODE1 |02  | 5.03 |. . .   |_______ 
102  |CODE1 |01  |21.50 |. . .   |_______ 
102  |CODE2 |01  | 9.10 |. . .   |_______ 
102  |CODE3 |03  | 7.15 |. . .   |_______ 

(其中原因列是一個文本框)

+1

你是否正在使用3個字段從一個具有複合主鍵的表中進行選擇?如果沒有,發佈相關表格的模式定義 –

+0

我不確定您是否使用了正確的術語......您是否*根據視圖中的選定列生成* sql語句並且僅*串聯*串在一起? –

+0

@馬丁威爾遜N西,我已經更新了這個問題,如果這個問題解決了。 –

回答

1

可以通過使用添加OR子句id的各三人在單個查詢中做到這一點(即爲您gridview中的每個選定的行)。例如:

從表1中選擇WHERE(KeyCol1 = val1-1 AND KeyCol2 = val1-2 AND KeyCol3 = val1-3)OR(KeyCol1 = val2-1 AND KeyCol2 = val2-2 AND KeyCol3 = val2-3 )或..等

相關問題