C#-在读卡器关闭时调用Read的尝试无效

C#-在读卡器关闭时调用Read的尝试无效,c#,sql,exception,C#,Sql,Exception,我有以下代码: 出于某种原因,它正在生成异常“调用读取读取器的无效尝试已关闭”。有人能帮我解决吗?我不知道它为什么会产生这个异常,因为我在阅读了阅读器的内容后正在关闭连接 它正在此行生成异常: while (rdr.Read()) 我解决了 问题是我正在读取块中加载数据表。我修改了代码如下,它现在可以工作了 if (rdr.HasRows) { results.Load(rdr); } 我解决了 问题是我正在读取块中加载数据表。我修改了代码如下

我有以下代码:

出于某种原因,它正在生成异常“调用读取读取器的无效尝试已关闭”。有人能帮我解决吗?我不知道它为什么会产生这个异常,因为我在阅读了阅读器的内容后正在关闭连接

它正在此行生成异常:

                    while (rdr.Read())
我解决了

问题是我正在读取块中加载数据表。我修改了代码如下,它现在可以工作了

if (rdr.HasRows)
{
    results.Load(rdr);
}
我解决了

问题是我正在读取块中加载数据表。我修改了代码如下,它现在可以工作了

if (rdr.HasRows)
{
    results.Load(rdr);
}

出于某种原因,此行
results.Load(rdr)导致了问题。它正在将结果加载到数据表中。我声明数据表如下:DataTable results=newdatatable();DataTable在加载查询结果之前就已经声明好了。在加载查询结果之前,不会以任何其他方式对其进行修改导致了问题。它正在将结果加载到数据表中。我声明数据表如下:DataTable results=newdatatable();DataTable在加载查询结果之前就已经声明好了。在加载查询结果之前,不会以任何其他方式对其进行修改。您可以将其进一步缩短为:
if(rdr.HasRows)
他可以将其进一步缩短以完全删除HasRows检查。它可能不需要。您可以进一步将其缩短为:
if(rdr.HasRows)
他可以进一步缩短它以完全删除HasRows检查。可能不需要。