Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

DBF-Datenbank einlesen

  Alt 16. Jul 2011, 13:28
Datenbank: dBase? • Version: - • Zugriff über: C#
Hi zusammen,

ich habe hier eine DBF-Datei, die ich mit C# einlesen möchte. Leider klappt das hinten und vorne nicht.
Versucht habe ich es so (Leerzeichen in der Pfadangabe gehen leider nicht ):

Code:
string dbfPah = @"C:\Dokumente und Einstellungen\Eingeschraenkt\Desktop\tmp\";

StringBuilder dbfShortPath = new StringBuilder(255);
GetShortPathName(dbfPah, dbfShortPath, dbfShortPath.Capacity);

dbfPah = dbfShortPath.ToString();

OdbcConnection oConn = new OdbcConnection();
oConn.ConnectionString = @"Driver={Microsoft dBase Driver (*.dbf)};SourceType=DBF;SourceDB=" + dbfPah + ";Exclusive=No; Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;";
oConn.Open();

OdbcCommand oCmd = oConn.CreateCommand();
oCmd.CommandText = @"SELECT * FROM [" + dbfPah + "FILE.DBF]";
DataTable dt = new DataTable();
dt.Load(oCmd.ExecuteReader()); // Fehler
oConn.Close();

dataGridView1.DataSource = dt;
Bei
Code:
oCmd.ExecuteReader()
kommt immer der Fehler:

Zitat:
ERROR [42000] [Microsoft][ODBC dBASE Driver] Das Datenbankmodul kann 'C:\DOKUME~1\EINGES~1\Desktop\tmp\FILE.DBF' nicht finden. Stellen Sie sicher, dass es sich um einen gültigen Parameter oder Alias-Namen handelt, der keine ungültigen Zeichen oder falsche Zeichensetzung enthält und dessen Name nicht zu lang ist.
Der Pfad existiert jedoch genau so (C:\DOKUME~1\EINGES~1\Desktop\tmp\).

Wie funktioniert das?
Mit
Code:
System.Data.OleDb
geht's genauso wenig.

Grüße
Matze
  Mit Zitat antworten Zitat