Microsoft Text Text Driver видит текст как операцию с плавающей запятой - PullRequest
1 голос
/ 21 августа 2009

Использование .NET

У меня есть текстовый файл с данными, разделенными запятыми. Один из столбцов состоит из следующего текста: 1997/020269/07

Теперь, когда я делаю выбор с помощью OdbcCommand, строка рассматривается как число с плавающей точкой, и она возвращает «ответ» вместо фактического текста!

Как я могу получить фактический текст? Я буду вынужден разобрать файл вручную?

Надеюсь, кто-нибудь может помочь ... пожалуйста ?! :)

Редактировать: Может быть, какой-то код? :)

string strConnString =
            @"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" + _FilePath +
            @"; Extensions=asc,csv,tab,txt;Persist Security Info=False";

var conn = new System.Data.Odbc.OdbcConnection(strConnString);

var cmd = new System.Data.Odbc.OdbcCommand("select MyColumn from TextFile.txt", conn);
var reader = cmd.ExecuteReader();


while (reader.Read())
{ Console.WriteLine(reader["MyColumn"]); }

Возвращает 0,014074977 вместо 1997/020269/07

Ответы [ 2 ]

2 голосов
/ 21 августа 2009

Вы пытались использовать файл schema.ini - его можно использовать для явного определения формата текстового файла, включая типы данных.

Ваш файл schema.ini может выглядеть примерно так:

[sourcefilename.txt]
ColNameHeader=true
Format=CSVDelimited
Col1=MyColumn Text Width 14
Col2=...
0 голосов
/ 21 августа 2009

Попробуйте использовать schema.ini

[yourfile.txt]
ColNameHeader=false
MaxScanRows=0
Format=FixedLength
Col1=MyColumn Text Width 20

Bye.

...