2009-08-21 8 views
1

Utilisation de .NETLe pilote de texte Microsoft Microsoft voit le texte comme une opération flottante

J'ai un fichier texte avec des données séparées par des virgules. Une des colonnes se compose de texte comme suit: 1997/020269/07

Maintenant quand je fais un select avec un OdbcCommand la chaîne est vue comme un float et elle renvoie la 'réponse' au lieu du texte réel!

Comment obtenir le texte actuel? Est-ce que je vais être obligé d'analyser le fichier manuellement?

J'espère que quelqu'un peut vous aider ... s'il vous plaît ?! :)

Modifier: Un code peut-être? :)

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

Ce retour 0,014074977 au lieu de 1997/020269/07

+1

Personne ne peut vous aider. Vous n'avez pas montré le code que vous avez utilisé. Vous n'avez même pas montré ce qu'est cette "réponse". Vous ne saurez jamais la réponse. –

+0

Vous rock. Je me suis moqué de mon cul tout à l'heure. Ma faute. – Tersius

+0

@Tersius: Parfois, un coup avec un bâton pointu est plus efficace qu'un coup sur l'épaule. J'espère que le bâton acéré fait mal pendant un petit moment - et vous vous en souviendrez. –

Répondre

2

Avez-vous essayé d'utiliser un fichier schema.ini - ceux-ci peuvent être utilisés pour définir explicitement le format du fichier texte, y compris les types de données.

Votre fichier schema.ini pourrait finir par un peu comme:

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

Beau lien. J'espère que vous allez élaborer un peu? –

+0

... comme ça ... –

0

Essayez d'utiliser schema.ini

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

Bye.

Questions connexes