यहां एक तरीका है जिसका उपयोग मैं किसी भी IDataReader को StreamWriter पर डंप करने के लिए करता हूं। मैं आम तौर पर इस तरह StreamSwriter बना देता हूं:new StreamWriter(Response.OutputStream)
. मैं इनपुट में किसी भी डबल-कोट वर्णों को सिंगल-कोट वर्णों में परिवर्तित करता हूं (शायद इसे संभालने का सबसे अच्छा तरीका नहीं है, लेकिन यह मेरे लिए काम करता है)।
public static void createCsvFile(IDataReader reader, StreamWriter writer) {
string Delimiter = "\"";
string Separator = ",";
// write header row
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);
// data loop
while (reader.Read()) {
// column loop
for (int columnCounter = 0; columnCounter < reader.FieldCount; columnCounter++) {
if (columnCounter > 0) {
writer.Write(Separator);
}
writer.Write(Delimiter + reader.GetValue(columnCounter).ToString().Replace('"', '\'') + Delimiter);
} // end of column loop
writer.WriteLine(string.Empty);
} // data loop
writer.Flush();
}