/// <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)
imagemagic add text to image
rem different types of text annotations on existing images rem cyan yellow orange gold rem -gravity SouthWest rem draw text and anno...
-
Error:The element 'Schedule' has invalid child element 'RecurrenceRule'. List of possible elements expected: 'Occurring&...
-
Perfect blog post must include following elements (from 1 to 13): 1.Big catchy header in 30px font size 2.First copy of social links and com...
-
SetKeyDelay , 75 , 75 ;Exits AutoHotKey application. $^CapsLock:: ExitApp return ;Pauses AutoHotKey Script. F6:: Pause , Toggle, 1 $x:: ...
No comments:
Post a Comment