【发布时间】:2016-08-05 02:41:01
【问题描述】:
我正在使用SqlDataReader 编写包含多个工作表的 Excel 工作簿。每个工作表都有一个页眉、一个正文和一个页脚,所以我在 while 循环中使用了一个 while 循环。
问题是reader.Read() 永远不会为我返回 false,因此 eof 永远不会设置为 false。在文件末尾,当我尝试写入标题时出现错误,因为阅读器为空。
具体报错信息为:
不存在数据时尝试读取无效。
如果可以,请查看我的代码并提供帮助。
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();
【问题讨论】:
标签: c# sql sqldatareader