public DataTable ReadCsv(string csvName) { var assembly = Updater.Assembly(); var resources = assembly.GetManifestResourceNames(); string resourceName = assembly.GetManifestResourceNames() .Single(str => str.EndsWith("." + csvName)); DataTable csvData = new DataTable(); using (TextFieldParser csvReader = new TextFieldParser(assembly.GetManifestResourceStream(resourceName), Encoding.GetEncoding("iso-8859-1"), false)) { csvReader.TextFieldType = FieldType.Delimited; csvReader.SetDelimiters(";"); csvReader.HasFieldsEnclosedInQuotes = false; string[] columns = csvReader.ReadFields(); foreach (string column in columns) { DataColumn csvColumn = new DataColumn(column); csvColumn.AllowDBNull = true; csvData.Columns.Add(csvColumn); } while (!csvReader.EndOfData) { string[] rowData = csvReader.ReadFields(); for (int i = 0; i < rowData.Length; i++) { if (rowData[i] == "") { rowData[i] = null; } } csvData.Rows.Add(rowData); } } return(csvData); }