Как в .Net я могу импортировать значения из CSV в формате, который я хочу использовать OleDB? - PullRequest
3 голосов
/ 26 октября 2008

У меня есть файл CSV, в котором есть столбец, содержащий строки, которые выглядят как целые числа. То есть они должны рассматриваться как строки, но так как они являются числами, они, похоже, импортируются как целые числа (отбрасывая начальные нули).

Пример данных:

  • 0000000000079
  • 0000999000012
  • 0001002000005
  • 0004100000007

Проблема, с которой я сталкиваюсь, заключается в том, что последний пример данных указывается как DBNull.Value. Я предполагаю, что это потому, что OleDB рассматривает этот столбец как целое число (точки данных также проходят без начальных нулей), а значение 0004100000007 превышает наибольшее целочисленное значение.

Есть ли способ сказать, что "column [0] - это строка, не считайте ее как целое число"? При чтении данных?

Код, который я сейчас использую:

OleDbConnection dbConn = new OleDbConnection(SourceConnectionString);
OleDbCommand dbCommand = new OleDbCommand("SELECT * FROM test.csv", dbConn);
dbConn.Open();
OleDbDataReader dbReader = dbCommand.ExecuteReader();

while (dbReader.Read())
{
    if (dbReader[0] != DBNull.Value)
    {
         // do some work
    }
}

Ответы [ 5 ]

3 голосов
/ 26 октября 2008

Попробуйте использовать метод GetString () в считывателе, когда вам нужно прочитать столбец как строку:

string myStringValue = reader.GetString(0);
1 голос
/ 23 февраля 2009

Существует файл Schema.ini, который необходимо использовать для указания информации о файле. Он включает в себя типы и длины полей, наличие заголовков столбцов и разделитель полей.

Вот информация о MSDN.
http://msdn.microsoft.com/en-us/library/ms709353.aspx

1 голос
/ 05 ноября 2008

У вас есть контроль над процессом экспорта? Если это так, можно ли экспортировать данные в CSV с кавычками вокруг строковых элементов?

Если это одно из заданий, просто импортируйте файл в предварительно составленную таблицу SQL с помощью служб Integration Services, но я подозреваю, что это будет повторяющейся задачей.

0 голосов
/ 17 апреля 2011

Я не эксперт, но вы справляетесь с фиксированным форматом файла? http://csharptutorial.com/blog/exclusive-how-to-export-a-datatable-to-a-fixed-file-format-the-easy-way-using-odbc-or-jet-engine/

0 голосов
/ 26 октября 2008

Вы пробовали использовать этот CSV ридер ? Это вообще очень уважаемо. Возможно, попробуйте ...

...