我使用SqlDataReader
写有几个工作表的Excel工作簿。每个工作表都有一个头文件,一个主体和一个页脚,所以我在while循环中使用了一个while循环。SqlDataReader的决不返回false
的问题是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();
没错。我需要做的是改变我的条件while(eof!= false ....) – Missy
这是正确的:-) –