Вот мой код для создания CSV-файла из любого IDataReader. Вызовите его, используя результаты ExecuteReader () и HttpResponse.OutputStream. Он запишет имена столбцов в первой строке, а затем один или несколько наборов строк данных. Выведите его в браузер, как предложено Мэттом, хотя я бы предложил тип содержимого 'text / csv'.
public static void createCsvFile(IDataReader reader, StreamWriter writer) {
for (int columnCounter = 0; columnCounter < reader.FieldCount; columnCounter++) {
if (columnCounter > 0) {
writer.Write(Separator);
}
writer.Write(Delimiter + reader.GetName(columnCounter) + Delimiter);
}
writer.WriteLine(string.Empty);
do {
while (reader.Read()) {
for (int columnCounter = 0; columnCounter < reader.FieldCount; columnCounter++) {
if (columnCounter > 0) {
writer.Write(Separator);
}
writer.Write("\""+ reader.GetValue(columnCounter).ToString().Replace('"', '\'') + "\"");
}
writer.WriteLine(string.Empty);
}
writer.Flush();
}
while (reader.NextResult());