为什么 DataTable.Load(IDataReader) 不能加载一行?

Why can't DataTable.Load(IDataReader) load one row?

我正在使用 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_GetNamesreturns一条记录。

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

调用 Load() 而不先调用 Read()