克隆SQLDataReader以获取行数

时间:2016-06-09 13:11:49

标签: c# list clone sqldatareader

我有一个datareader。我需要找到它中的行数,以便我可以实例化一个数组。最初我通过使用:

来做到这一点
<code>
DataTable dt = new DataTable();
dt.Load(reader);
int noOfRows = dt.Rows.Count; 
</code>

但是我发现将阅读器加载到数据表中会关闭阅读器,然后才能在我的代码中迭代它。我想克隆读者并将克隆传递给Datatable。这是可行的还是可取的?

有没有更好的方法来查找数据读取器中的行数?我知道我可以用列表做一些事情(不完全确定是什么),但我的datareader包含33个不同数据类型的字段,我不知道如何将它们全部放入列表中。

感谢

1 个答案:

答案 0 :(得分:0)

ADO.NET和SQL Server本身都不知道发送之前的行数。您只能通过枚举所有行来找到。

也许您可以使用report_table = """<table> ......... ........... .......... </table>""" 代替数组,这样就不必预先定义尺寸了?