CSV чтение в Datatable делает одну строку имя столбца - PullRequest
0 голосов
/ 19 января 2012

Я читаю в CSV-файл из таблицы данных, и что-то происходит.

Вот чтение

 OpenFileDialog openFileDialog1 = new OpenFileDialog();
 openFileDialog1.Filter = "CSV Files|*.csv";
 openFileDialog1.Title = "Select a CSV File";
 if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {

            string connString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Text;", System.IO.Path.GetDirectoryName(openFileDialog1.FileName));
            string cmdString = string.Format("SELECT * FROM {0}", System.IO.Path.GetFileName(openFileDialog1.FileName));
            OleDbDataAdapter dataAdapter = new OleDbDataAdapter(cmdString, connString);
            DataTable tbl = new DataTable();
            dataAdapter.Fill(tbl);
            TableBuilder b = new TableBuilder(tbl);
            List<SingleTable> tablelist = b.TableList;
        }

И когда я смотрю на данные в визуализаторе, ! [Первая строка, а не строка, является заголовком столбца] [1]

Оригинальный CSV выглядит так

! [Original csv] [2]

Может кто-нибудь сказать мне, почему таблица данных преобразует первую строку в столбец? И что я должен сделать, чтобы сохранить этот первый ряд?

Ответы [ 3 ]

1 голос
/ 19 января 2012

Не уверен, что это то, что вам нужно, потому что кажется, что-то не хватает в вашем вопросе. Но вы можете изменить строку подключения на:

string connString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Text;HDR=No", System.IO.Path.GetDirectoryName(openFileDialog1.FileName));

Это сообщит соединению, что первая строка не является строкой заголовка.

1 голос
/ 19 января 2012

Попытайтесь сообщить OLEDB-провайдеру, что файл не имеет заголовка

Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Text;HDR=no;

Или взгляните на этот SO-ответ: https://stackoverflow.com/a/4598862/284240

0 голосов
/ 19 января 2012

Обычно, если у вас есть дополнительные «,», встроенные в данные, это будет рассматривать каждую запятую как отдельный столбец, который у меня случался, когда я делал то же самое.смещение .. также есть заголовки, которые вы создаете ..?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...