根据选定的主键从数据库中获取记录的最佳方法是什么?
我能够从网格视图中获取选定(选中)行的主键,现在需要从数据库中检索这些选定复合主键的相应记录。
如果这些行只使用一个主键,那就更容易了。我可以只连接主键(逗号分隔)并在 WHERE IN 子句中使用它。但是这些行使用三个主键(int、int、string)
我正在考虑使用 SELECT JOIN(每组主键选择一个,然后加入所有选择),但我不确定这是否是最优化的方法。
处理这个问题的最佳方法是什么?
提前致谢。
尼基
[更新] - 无法回复个别评论,我可能还没有足够的权限,所以会在此处更新帖子以明确。
这是我正在做的一个例子:
来自一个具有复合键的数据库表的数据:
TABLE1
KeyCol1 INT (Primary Key),
KeyCol2 STRING (Primary Key),
KeyCol3 INT (Primary Key),
Col4 Decimal,
Col5 STRING,
Other columns . . .
带有网格视图 1 的第 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 |. . .
. . . (其中 Sel 列是一个复选框,并且 [/] 被选中)
然后在第 1 页上单击一个按钮(例如“取消记录”)后,我需要获取这些行,以显示到另一个页面,如下所示:
第 2 页,带有 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 |. . . |_______
(其中原因列是一个文本框)