Esempio n. 1
0
        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);
        }