2012-03-24 14 views
0

i Daten aus DBF-Datei bin Abrufen, wenn ich gehen für verdoppeln für geht „das angegebene Ziel ungültig ist“ Ausnahme auch ich den zugehörigen Code dh Doppel RNO ​​schreibe = dr.GetDouble (0); RNO ist Nummer und im Doppelformat in der Datenbank. kann mir jemand helfen .. String funktioniert gutangegebene Umwandlung ist ungültig. (DBF-Datei)

+0

'String StrCon = @" Provider = Vfpoledb; Data Source = C: \ Benutzer \ Najam \ Desktop \ INT111.DBF; Erweiterte Eigenschaften = dBASE IV; User ID = Admin; Passwort =; "; OleDbConnection con = neue OleDbConnection (strCon); con.Open(); OleDbCommand cmd = neuer OleDbCommand ("select * from int111", con); OleDbDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { doppelte RNO = dr.GetDouble (0); int LINKRNO = dr.GetInt16 (1); Zeichenfolge FORMNO = dr.GetString (2); double MRNO = dr.GetDouble (3);}}} ' – user1289578

+0

Verwenden Sie dr.GetString() dann double.Parse() zu konvertieren und Sie sollten ein debuggable Problem bekommen. Ich stelle mir vor, es könnte ein Problem mit Komma gegen Dezimalpunkt sein. Oder du versuchst, DbNull zu konvertieren. –

Antwort

0

Wie ich mich erinnere "Select * from int111" kann Spalten in anderer Reihenfolge zurück, aber Sie verlassen sich auf besondere Reihenfolge. Versuchen Sie Spalten explizit angeben, wie

select RNO, LINKRNO, FORMNO, MRNO from int111 
+0

danke Kumpel ich korrigierte es seinen Typ war tatsächlich dezimal, während in der Datenbank war es doppelt ............. – user1289578

Verwandte Themen