/// <summary> /// Method for converting reader into CSV /// </summary> /// <param name="dataReader"></param> /// <param name="includeHeaderAsFirstRow"></param> /// <param name="separator"></param> /// <returns></returns> public Stream ToCSV(IDataReader dataReader, bool includeHeaderAsFirstRow, string separator) { Stream csv = new TempFileStream(); StreamWriter csvRows = new StreamWriter(csv); StringBuilder sb = null; if (includeHeaderAsFirstRow) { sb = new StringBuilder(); for (int index = 0; index < dataReader.FieldCount; index++) { if (dataReader.GetName(index) != null) sb.Append(dataReader.GetName(index)); if (index < dataReader.FieldCount - 1) sb.Append(separator); } csvRows.WriteLine(sb.ToString()); } while (dataReader.Read()) { sb = new StringBuilder(); for (int index = 0; index < dataReader.FieldCount - 1; index++) { if (!dataReader.IsDBNull(index)) { string value = dataReader.GetValue(index).ToString(); if (dataReader.GetFieldType(index) == typeof(String)) { //If double quotes are used in value, ensure each are replaced but 2. if (value.IndexOf("\"") >= 0) value = value.Replace("\"", "\"\""); //If separtor are is in value, ensure it is put in double quotes. if (value.IndexOf(separator) >= 0) value = "\"" + value + "\""; } sb.Append(value); } if (index < dataReader.FieldCount - 1) sb.Append(separator); } if (!dataReader.IsDBNull(dataReader.FieldCount - 1)) sb.Append(dataReader.GetValue(dataReader.FieldCount - 1).ToString().Replace(separator, " ")); csvRows.WriteLine(sb.ToString()); } csvRows.Flush(); dataReader.Close(); return csv; }
Wednesday
IDataReader into csv
Subscribe to:
Post Comments (Atom)
test smtp server with powershell
Send-MailMessage -SMTPServer smtp.domain.com -To [email protected] -From [email protected] -Subject "This is a test email" -Body ...
-
Here is instruction how to make blinking text in rainmeter: 1.right click and select " Edit skin " 2.add following code to temp...
-
Error:The element 'Schedule' has invalid child element 'RecurrenceRule'. List of possible elements expected: 'Occurring...
-
If you use Visual Studio to open a Web project that was developed for the .NET Framework 2.0, the .NET Framework 3.0, or the .NET Framework...
No comments:
Post a Comment