2009-08-21 6 views
1

Verwendung von .NETMicrosofts Microsoft Text Driver sieht Text als Float-Operation

Ich habe eine Textdatei mit Komma getrennten Daten. Eine der Spalten besteht aus folgendem Text: 1997/020269/07

Wenn ich jetzt eine Auswahl mit einem OdbcCommand durchführe, wird die Zeichenfolge als Float betrachtet und sie gibt die "Antwort" anstelle des eigentlichen Textes zurück!

Wie kann ich den eigentlichen Text erhalten? Muss ich die Datei manuell analysieren?

Hoffe jemand kann helfen ... bitte ?! :)

Edit: Irgendein Code vielleicht? :)

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"]); } 

Das gibt 0,014074977 statt 1997/020269/07

+1

Niemand kann Ihnen helfen. Sie haben den verwendeten Code nicht angezeigt. Du hast nicht einmal gezeigt, was diese "Antwort" ist. Du wirst die Antwort nie erfahren. –

+0

Sie rocken. Ich habe gerade meinen Arsch gelacht. Mein Fehler. – Tersius

+0

@Tersius: Manchmal ist ein Stochern mit einem scharfen Stock effektiver als ein Tippen auf die Schulter. Ich hoffe, der scharfe Stock schmerzt für eine Weile - und Sie werden sich daran erinnern. –

Antwort

2

Haben Sie versucht, eine Datei mit schema.ini - diese verwendet werden können, um explizit das Format der Textdatei zu definieren, Datentypen, einschließlich.

 
[sourcefilename.txt] 
ColNameHeader=true 
Format=CSVDelimited 
Col1=MyColumn Text Width 14 
Col2=... 
+0

Netter Link. Ich hoffe, Sie werden ein wenig weiter ausführen? –

+0

... so ... –

0

Versuchen schema.ini

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

Bye mit:

Ihre schema.ini Datei kann bis suchen ein wenig wie beenden.