Как прочитать данные CSV в таблицу данных с записью схемы - PullRequest
0 голосов
/ 08 февраля 2020

В настоящее время я работаю над проектом класса для создания программы чтения CSV в C#. Я столкнулся с ошибками при попытке прочитать данные и прочитать предыдущие сообщения о попытке переопределить задачу MaxScanRows. Я решил включить в программу запись схемы, которая будет записывать схему в точке считывания csv в представление сетки данных.

При попытке отладки кода консоль выводит следующее:

'TSP GUI.exe' (CLR v4.0.30319: TSP GUI.exe): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_32\System.Transactions\v4.0_4.0.0.0__b77a5c561934e089\System.Transactions.dll'.

Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.

Exception thrown: 'System.Data.OleDb.OleDbException' in System.Data.dll

Код:

public DataTable ReadCsv(string csvFileName)
        {
            DataTable dt = new DataTable();
            try
            {
                using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"" +
                Path.GetDirectoryName(csvFileName) + "\";Extended Properties='text;HDR=Yes;IMEX=1;FMT=Delimited(,)';"))
                {
                    using (OleDbCommand cmd = new OleDbCommand(string.Format("select *from [{0}]", new FileInfo(csvFileName).Name), conn))
                    {
                        conn.Open();
                        using (OleDbDataAdapter obj_oledb_da = new OleDbDataAdapter(cmd))
                        {
                            DataTable dtSchema = new DataTable();
                            obj_oledb_da.FillSchema(dtSchema, SchemaType.Source);
                            if (dtSchema != null)
                            {
                                writeSchema(dtSchema);
                            }
                            obj_oledb_da.Fill(dt);
                        }
                    }
                }
            }
            catch
            {
                MessageBox.Show("Error occured");
            }
            return dt;
        }

Исключение выдается при выполнении conn.open();.

Спасибо за редактирование и передачу мне указания,

Еще один вариант это решит мою проблему - это расширенные свойства строки подключения. Я просто не знаю, что нужно сделать, чтобы CSV мог быть прочитан со всеми строками, так как файл csv в основном содержит цифры в строке, но редко содержит комбинацию буквенно-цифровых символов.

...