【发布时间】:2023-03-29 22:09:01
【问题描述】:
using (var conn = new SqlConnection(connectionString))
{
var cmd = new SqlCommand("SELECT * FROM mySchema.MyTable", conn);
conn.Open();
var reader = cmd.ExecuteReader();
while(reader.Read())
{...
在调试器中,我可以看到我的阅读器有一行 - 我可以看到返回的数据 - 但 reader.Read 正在返回 false,所以我的处理代码没有被调用。
这似乎是非常基本的“从数据库表中读取行”的东西,所以我错过了什么?我应该直接查看读者的行数据还是什么?
【问题讨论】:
-
您在调试器中究竟是如何看到这一行的?你看的是哪个楼盘?调试器是否已经调用了
Read(),所以当你的代码调用它时它是false? -
听起来调试器已经读取了所有数据,然后您的代码检测到没有更多数据。如果您不使用调试器,这是否有效?
-
说真的,调试器可以这样修改代码的行为吗?就像我在
reader上展开“结果视图”一样,它会运行while(reader.Read()){...}循环? -
如果你看到了结果,如果不是这样读出来,调试器应该如何得到它们?它不会启动第二个查询...
-
嗯,调试器的全部意义在于成为一个沉默的观察者,确定吗?逐行执行你的程序,等等……
标签: c# sql .net sql-server dbconnection