gpt4 book ai didi

c# - SqlDataReader 从不返回 False

转载 作者:行者123 更新时间:2023-11-30 15:20:58 27 4
gpt4 key购买 nike

我正在使用 SqlDataReader 编写一个包含多个工作表的 Excel 工作簿。每个工作表都有一个页眉、一个正文和一个页脚,所以我在一个 while 循环中使用了一个 while 循环。

问题是 reader.Read() 永远不会为我返回 false,所以 eof 永远不会设置为 false。在文件末尾,当我尝试写入 header 时出现错误,因为读取器为空。

具体报错信息为:

Invalid attempt to read when no data is present.

请查看我的代码并在可能的情况下提供帮助。

reader = cmd.ExecuteReader();
bool eof = false;
bool first = true;

while (!eof)
{
// write a header
// set newHeaderCondition from the Reader -- error occurs here
if (first)
{
reader.Read();
first = false;
}

do
{
// write row onto spreadsheet
eof = reader.Read(); ---- THIS IS NEVER FALSE
} while (!eof && (reader[0] == newHeaderCondition ));

// write footer that doesn't contain any reader data
if (!eof )
{
// create a new worksheet
}
}

reader.Close();

最佳答案

SqlDataReader.Read将阅读器推进到下一条记录并返回 true 只要有更多的行;否则 false

问题出在你的循环条件,它只执行一次(即使有更多行),修改你的while条件并修改它。

关于c# - SqlDataReader 从不返回 False,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38780277/

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