gpt4 book ai didi

c# - Reader.Read() 无法读取行,即使它有行

转载 作者:行者123 更新时间:2023-12-05 05:28:08 25 4
gpt4 key购买 nike

我遇到一个问题,读取器似乎指示它具有来自返回的 SQL 的行,但读取器的 while 循环从未运行。我在 reader.hasrows 中放了一个消息框作为验证,我也在 while 循环之后的第一行放了一个消息框。执行了 hasrows 的消息框,但未执行读取的消息框。这很令人费解。我尝试了对数据库的查询,它确实返回了行。这是代码片段。

using (DbConnection connection = CADBase.DbProviderFactory.CreateConnection())
{
connection.ConnectionString = CADBase.DbConnectionString;
connection.Open();

using (DbCommand command = connection.CreateCommand())
{
SQL = <statement here>;
command.CommandText = SQL

using (DbDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
//NEVER MAKES IT HERE
}
}
}
}

最佳答案

对于这个问题的 future 读者:请注意,问题的发生是因为 OP 在查询中返回了太多的列。请参阅此答案下方的评论。


我不太确定为什么会这样,但您实际上只需要检查一次行,而不是两次,而且 Read() 方法已经这样做了。

所以你真正需要的是

while (reader.Read())
{
// Do your thing
}

关于c# - Reader.Read() 无法读取行,即使它有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13843267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com