0

我正在使用DataTable.Load(IDataReader)从数据库加载数据。
当我加载一条记录时,DataTable.Rows.Count显示计数0,但是当我加载多条记录时DataTable.Rows.Count显示正确的计数。

这是否意味着DataTable.Load Method需要两行及以上?
这篇文章很有帮助,但没有回答我的问题
https://msdn.microsoft.com/en-us/library/system.data.datatable.load(v=vs.110).aspx

代码

DataTable dt= new Datable
IDataReader rsg = DataClass.GetDBResults("sp_GetNames", "@Names", names);
 if (rsg.Read())
        {   
           dt.Load(rsg);
           int num = dt.Rows.Count;
                //More Code
        }

num0如果过程,sp_GetNames返回一条记录。

4

1 回答 1

3

您正在调用Read(),它读取第一条记录,然后您正在调用Load()。问题是,在调用 之后Read(),指向“当前记录”的指针rsg已经移过第一条记录并指向下一条记录(如果有的话)。调用Load()只会读取其余的记录,因为IDataReader它是一个只进的机制。

Load()在没有第一次调用的情况下调用Read()

于 2015-04-24T13:32:56.900 回答