使用Read()记录计数

时间:2011-01-28 14:32:05

标签: sql vb.net oracle oracle10g

我想知道如何在填充listview网格之前获取最大记录数。我正在使用Oracle 10g数据库,我尝试过:

SELECT COUNT(*) as countNum, status, date, theTitle, theMessage, date2 " & _
       "FROM blah blah...

messagebox.show(dr(0))

但这会导致SQL查询崩溃。它看起来好像我要在我的查询中放入任何与“count”相关的东西,否则它会崩溃所以有什么其他方式我可以看到它返回的记录数量除此之外还有多少呢?

谢谢! :O)

大卫

4 个答案:

答案 0 :(得分:2)

使用分析计数如下: SELECT COUNT(*)over()as countNum,status,date,theTitle,theMessage,date2“& _        “从blah blah

答案 1 :(得分:1)

使用count等聚合函数时,需要对结果集中不是聚合函数结果的所有字段使用group by子句。

答案 2 :(得分:0)

我在WITH子句的一种动态视图中编写了一次查询,并在一次选择中组合了一个计数并选择了这个查询。

WITH query AS (
 SELECT *
 FROM foobar
 WHERE foo = 1
)
SELECT
  ( SELECT COUNT(*) FROM query ) cnt,
  status,
  date,
  theTitle,
  theMessage
FROM query

答案 3 :(得分:0)

我会用这个来检索简单的记录数。不确定为什么要在此操作中拉出任何其他字段。如果有选择标准,则应用WHERE或HAVING子句(视情况而定):

SELECT COUNT(YourPrimaryKey) As RecordCount
FROM YourTable
GROUP BY YourPrimaryKey

在您的代码中使用cmd.ExecuteScalar来检索结果。 。 。