【问题标题】:How to get how many element datareader has read? [duplicate]如何获取数据读取器读取了多少元素? [复制]
【发布时间】:2013-05-03 14:26:11
【问题描述】:
如何获取数据读取器的长度,例如:
sqlDataReader dr = command.ExecuteReader();
dr.Read();
int L= dr.Length;// this doesn't work.
?
【问题讨论】:
标签:
c#
sql
database
winforms
sqldatareader
【解决方案1】:
您只需使用计数器即可跟踪您已经从DataReader 读取的项目数量。但是,我不相信有任何一般的方法可以在不阅读它们的情况下找出有多少行:
int count = 0;
while (dr.Read())
{
// Use the row data, presumably
count++;
}
【解决方案2】:
我不认为 Datareader 本身提供了 Count 属性。您将需要是否循环数据读取器并增加一个变量,或者首先使用您在命令执行中使用的相同条件执行选择计数(*)。
【解决方案3】:
没有 direct 方法(至少我不知道)来计算行数或列数。在 while 循环中使用自定义计数器。
while(dr.Read())
{
// Do your operations..
counter++;
}
- 在操作前运行类似
Select Count(*) 的查询。