我想在使用select語句後從NpgsqlDataReader獲取行數。我試圖檢查的原因是在處理數據之前查看它是否有任何數據,單個行或者是否有多行。任何幫助將不勝感激。如何從NpgsqlDataReader獲得行數
這在C#.NET 4
我想在使用select語句後從NpgsqlDataReader獲取行數。我試圖檢查的原因是在處理數據之前查看它是否有任何數據,單個行或者是否有多行。任何幫助將不勝感激。如何從NpgsqlDataReader獲得行數
這在C#.NET 4
從一點谷歌搜索NpgsqlDataReader似乎是非常相似的sqldatareader。 sqldatareader沒有內置的方式來獲得行數。 It would appear如果你想獲得行數,你將不得不循環並執行自己的計數。
正在做的。如果從DbDataReader
的NpgsqlDataReader
繼承其他的DataReader做,你可以用
if (reader.HasRows) {...}
檢查是否有任何結果。但我不認爲你可以得到沒有循環通過閱讀器的實際行數...
如果您只想快速預覽。
1)沒有結果 2)確實有一個結果 3)確實有多個結果
你可以用限制器執行類似的SQL語句。這應該是非常快的。在執行之後,您將檢索完整的數據。
例如:
SELECT * FROM [表格]其中,[條件] LIMIT 2
如果得到0行,沒有結果/ 如果得到1行,一個結果/ 如果得到2行,多個結果
我也想獲得行的進度條的數量,但似乎我不能迭代兩次是隻顯示進度的工作太多了;)
您可以創建一個代理類,w這是一個NpgsqlDataReader
的孩子,在那裏你重新實現迭代器(擴展IEnumerable
),如果你要麼.Read()
或要求.CountClass
,它將隱含地迭代第一到2行 - 然後它會從它的緩存中給它們2,然後直接讀取其餘的。