Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么可以';加载(IDataReader)是否加载一行?_C#_Datatable_Idatareader - Fatal编程技术网

C# 为什么可以';加载(IDataReader)是否加载一行?

C# 为什么可以';加载(IDataReader)是否加载一行?,c#,datatable,idatareader,C#,Datatable,Idatareader,我正在使用DataTable.Load(IDataReader)从数据库加载数据。 当我加载一条记录时,DataTable.Rows.Count显示计数0,但当我加载多条记录时,DataTable.Rows.Count显示正确的计数 这是否意味着DataTable.Load方法需要两行以上的数据? 这篇文章很有帮助,但没有回答我的问题 代码 DataTable dt= new Datable IDataReader rsg = DataClass.GetDBResults("sp_GetNam

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

这是否意味着
DataTable.Load方法
需要两行以上的数据?
这篇文章很有帮助,但没有回答我的问题

代码

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
        }
num
0
如果过程
sp_GetNames
返回一条记录。

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

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

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

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

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

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

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



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

请显示您的代码。如果看不到您正在做什么,就不可能真正帮助您。如果
.Rows.Count
为零:您没有加载任何行;你能展示一下你的代码吗?听起来你在调用Load()之前已经读过一条记录了。IDataReader的默认位置在第一条记录之前。在调用Load()之前,您是否在IDataReader上调用了Read(),或者其他可能会移动读取器位置的操作?正如其他人提到的,查看代码会有所帮助。我已经添加了代码。请显示您的代码。如果看不到您正在做什么,就不可能真正帮助您。如果
.Rows.Count
为零:您没有加载任何行;你能展示一下你的代码吗?听起来你在调用Load()之前已经读过一条记录了。IDataReader的默认位置在第一条记录之前。在调用Load()之前,您是否在IDataReader上调用了Read(),或者其他可能会移动读取器位置的操作?正如其他人提到的,查看代码会有所帮助。我已经添加了代码。请显示您的代码。如果看不到您正在做什么,就不可能真正帮助您。如果
.Rows.Count
为零:您没有加载任何行;你能展示一下你的代码吗?听起来你在调用Load()之前已经读过一条记录了。IDataReader的默认位置在第一条记录之前。在调用Load()之前,您是否在IDataReader上调用了Read(),或者其他可能会移动读取器位置的操作?正如其他人提到的,查看代码会有所帮助。我已经添加了代码。请显示您的代码。如果看不到您正在做什么,就不可能真正帮助您。如果
.Rows.Count
为零:您没有加载任何行;你能展示一下你的代码吗?听起来你在调用Load()之前已经读过一条记录了。IDataReader的默认位置在第一条记录之前。在调用Load()之前,您是否在IDataReader上调用了Read(),或者其他可能会移动读取器位置的操作?正如其他人提到的,查看代码会有所帮助。我已经添加了代码。谢谢@JeffFerguson。这就是答案。你救了我很多。@Angwenyi如果你能投a而不是a
IDataReader
你仍然可以通过Thank@Scott进行If检查我想知道如何检查rsg是否有非常有用的行。谢谢@JeffFerguson。这就是答案。你救了我很多。@Angwenyi如果你能投a而不是a
IDataReader
你仍然可以通过Thank@Scott进行If检查我想知道如何检查rsg是否有非常有用的行。谢谢@JeffFerguson。这就是答案。你救了我很多。@Angwenyi如果你能投a而不是a
IDataReader
你仍然可以通过Thank@Scott进行If检查我想知道如何检查rsg是否有非常有用的行。谢谢@JeffFerguson。这就是答案。你救了我很多。@Angwenyi如果你可以使用a而不是
IDataReader
你仍然可以通过Thank@Scott进行If检查,我想知道如何检查rsg是否有非常有用的行。