我在尝试使用select语句后从NpgsqlDataReader获取行数。我试图检查的原因是看它是否有任何数据,单行,或者在处理数据之前它是否有多行。任何帮助将不胜感激。
这是在C#.NET 4中完成的
答案 0 :(得分:2)
如果NpgsqlDataReader
继承自DbDataReader
其他DataReader,则可以查看
if (reader.HasRows) {...}
如果有任何结果。但我不认为你可以在不通过阅读器循环的情况下获得实际的行数....
答案 1 :(得分:1)
通过一些谷歌搜索,NpgsqlDataReader似乎与sqldatareader非常相似。 sqldatareader没有内置的方法来获取行数。 It would appear如果你想获得行数,你必须循环并执行自己的计数。
答案 2 :(得分:0)
如果您只想快速预览。
1。)没有结果 2.)确实有一个结果 3.)确实有多个结果
您可以使用LIMITer执行类似的SQL语句。这应该非常快。在执行之后,您将检索完整的数据。
示例:
从[TABLE]中选择*,其中[CONDITION] LIMIT 2
如果你得到0行,没有结果/ 如果你得到1行,一个结果/ 如果你得到2行,多个结果
答案 3 :(得分:0)
我还想获得进度条的行数,但似乎我不能迭代两次是为了显示进度太多的工作;)
您可以创建一个代理类,它是NpgsqlDataReader
的子代,您可以在其中重新实现迭代器(extends IEnumerable
),如果您{.Read()
,它将隐式迭代最多2行。 {1}}或者问.CountClass
- 然后它会在直接阅读其余内容之前从其缓存中提供这两个。