这将帮助您在 1 次行程中获得所需的所有数据。你的DataAdapter.Fill
命令应该是这样的:
SELECT TOP 20 * FROM Posts WHERE ...
然后在同一个命令中,用分号分隔;
,有你的第二个 SQL,这将导致第二个表被添加到你的DataSet
.
SELECT *
FROM
(SELECT
*,
ROW_NUMBER() OVER(PARTITION BY PostID ORDER BY ID desc) RowNum
FROM
Comments
WHERE
PostID IN (SELECT TOP 20 ID FROM Posts WHERE ...)
) tmp
WHERE
RowNum <= 10
此 SQL 将为您提供您在上面要求的所有帖子的评论,但每个 PostID 仅获得最后 10 条评论。
注意
SELECT TOP 20 ID FROM Posts WHERE ...
应该是您的第一个 SQL 语句中的确切 SQL,除了单个返回字段是 ID 列。
填充数据集后,将其保存以备后用,以便在记录更改时(选择发布),然后您可以获取已经本地的数据以供您的评论
很抱歉这是在 VB 中
Dim DRs as Datarow() = {Your Dataset}.Tables(1).Select("PostID = " & {The current records ID})
希望这可以帮助。它至少应该让你指出正确的方向。