I haven\'t used DataReaders in ages (I prefer to use an ORM) but I\'m forced to at work. I pull back the rows, and check that HasRows
is true; debugging at thi
If you want to put the data into a file, start by loading a DataTable instead of using a DataReader.
With the DataReader, as has been mentioned in the comments, you might want to iterate through the result set with a while loop
while (reader.Read())
{
}
The loop reads one row at a time and quits when all of the rows have been read. Once you move to the next row, the previous rows are no longer available unless you have put them into some other structure, like a list or DataTable.
But you can use a DataAdapater to fill a DataTable so there might not be a reason to use a DataReader. Then you can write to a file from the DataTable.
In any event, I don't see how this line could work.
FileName = Convert.ToString(reader["FileName"])
I can post additional code for either approach if you like.
HTH Harvey Sather
Just to clarify the answer, it was using the debugger since expanding the results view calls Read()
and therefore it moves past the row. As Marc Gravell said in a comment: Debugger considered harmful