C# SqlDataReader";枚举未产生任何结果”;
我一直想弄清楚,但我不能 我通过SqlCommand执行存储过程,返回的SqlDatareader对象不会给出结果,但是,如果在调试器中浏览对象,我可以看到结果。这是我所说的图像: 在结果视图行中,它显示“枚举未产生任何结果”,但在路径中: base->base->ResultView->[0]->非公共成员->\u值->[0]、[2]、[3] 结果如下所示 有人知道如何得到它们吗 这是我用来获取和指定列的代码:C# SqlDataReader";枚举未产生任何结果”;,c#,asp.net,sqldatareader,C#,Asp.net,Sqldatareader,我一直想弄清楚,但我不能 我通过SqlCommand执行存储过程,返回的SqlDatareader对象不会给出结果,但是,如果在调试器中浏览对象,我可以看到结果。这是我所说的图像: 在结果视图行中,它显示“枚举未产生任何结果”,但在路径中: base->base->ResultView->[0]->非公共成员->\u值->[0]、[2]、[3] 结果如下所示 有人知道如何得到它们吗 这是我用来获取和指定列的代码: if (dataReader.Read()) { ProjectFolder
if (dataReader.Read())
{
ProjectFolderId = dataReader["ItemID"].ToString();
}
但是if返回false。你需要小心:一个阅读器只能被消费一次。通过使数据在预览窗口中可见,很可能是您在调试器中意外地使用了该数据,而该数据不再可用 确保它在调试器预览窗口中不可见/未展开,然后重试
所显示的
\u值
仅是成功读取的最后一行的遗留/剩余值。如何使它们不可见?顺便说一句,我在没有存储过程的情况下执行了查询(直接在CommandText属性中执行,然后是ExecuteSelect),现在可以工作了。我认为使用存储过程的过程有点奇怪,你怎么看?@equasar我怀疑它与存储过程有关-除了设置命令类型之外,API是相同的;通常,您需要选择性地单击以展开枚举,因为IDE知道许多枚举是不可重复的。你有没有点击来扩展它?你太棒了,@MarcGravel。我不敢相信调试器会消耗数据。有同样的问题。有解决办法吗?