ASP.NET + SqlDataAdapter 没有返回正确的查询结果

Posted

技术标签:

【中文标题】ASP.NET + SqlDataAdapter 没有返回正确的查询结果【英文标题】:ASP.NET + SqlDataAdapter not returning correct results with query 【发布时间】:2014-02-26 21:37:41 【问题描述】:

我尝试运行这个:

SqlDataAdapter da = new SqlDataAdapter("Select top 100 * from table_name order by id desc", conn)

我正在取回所有行而不是最后 100 行。

【问题讨论】:

从您的选择语句中删除 TOP 100 不清楚问题,你想要只有 100 行并且这个查询返回所有行还是你想要所有行并且这个查询只返回最后 100 行? 我想要表格中的最后 100 行 该查询应该有效。也许还有其他代码可以更改命令。你能添加执行适配器的代码吗? 在其上放置一个 trace/sql 分析器。看看发送到数据库的内容。 【参考方案1】:

尝试运行 SQL 分析器并检查数据库中正在执行的实际查询。

这应该让您对如何进行有更多的了解。

【讨论】:

【参考方案2】:

您的 SELECT 语句中有 TOP 100,这就是它只返回 100 行的原因。从您的选择中删除 TOP 100,它将返回所有行。

SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM table_name ORDER BY id DESC", conn)

【讨论】:

问题恰恰相反。想要 100 行,但全部返回。 我只是在猜测,OP 的当前查询返回 TOP 100 并且他/她不高兴并且说类似" I am all the rows back, not the last 100." :S 所以我猜他/她想要所有的行不仅返回前 100 行。 在上面的问题中看到它的评论

以上是关于ASP.NET + SqlDataAdapter 没有返回正确的查询结果的主要内容,如果未能解决你的问题,请参考以下文章

以下哪个代码在 ASP.NET 2.0 中性能更好

如何将存储过程中的多个结果存储到数据集中?

SqlDataAdapter 用法详解

如何在 where 子句上基于 SqlCommand 或 SqlDataAdapter 填充 datagridview? SqlDataAdapter 不适用于哪里?

检测 SqlDataAdapter 填充方法何时完成

SqlDataAdapter.Fill - 异步方法