Laden...

dBase GetOleDbSchemaTable - Exception

Erstellt von kat_2403 vor 12 Jahren Letzter Beitrag vor 12 Jahren 2.051 Views
K
kat_2403 Themenstarter:in
236 Beiträge seit 2007
vor 12 Jahren
dBase GetOleDbSchemaTable - Exception

VS2005
Guten Abend,

ich möchte "einfach nur" das Tabellenschema - die Columndefinitionen (Namen, Datentyp) aus einer dBase-Datei ermitteln.


public void GetDataTable()
        {
            //OleDbConnection ccc = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.IO.Path.GetDirectoryName(filepath) + ";Extended Properties=dBASE IV;");
            string conString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source="+ filepath +";Extended Properties=dBase IV";
            OleDbConnection conn = new OleDbConnection(conString);
            conn.Open();

            // create the DataSet
            DataSet ds = new DataSet();

            // create the adapter and fill the DataSet
            OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM xxx", conn);
            adapter.Fill(ds);

            object[] objArrRestrict;
            objArrRestrict = new object[] { null, null, "xxx", null };
            DataTable schemaCols;
            schemaCols = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, objArrRestrict);
            //List the schema info for the selected table
            foreach (DataRow row in schemaCols.Rows)
            {
                //listBox.Items.Add(row["COLUMN_NAME"]);
            }
 

Beim Aufruf von GetOleDbSchemaTable bekomme ich aber eine Exception: "Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist."

Wo kann ich anfangen, nach dem Fehler zu suchen. Den DataTable füllt er mir ohne Probleme ..
LG

R
103 Beiträge seit 2009
vor 12 Jahren

meinst du wirklich eine dbase IV Datenbank oder eine Foxpro dbf Datenbank?
Für Foxpro dbf dateien musst du auf jeden Fall nen anderen Initstring und den Foxpro OLE Treiber verwenden.

K
kat_2403 Themenstarter:in
236 Beiträge seit 2007
vor 12 Jahren

Hallo,

ja ich meine dBase IV.

LG

F
10.010 Beiträge seit 2004
vor 12 Jahren

Ich würde trotzdem den FoxPro Treiber mal ausprobieren, evtl funktioniert der besser.
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=14839
http://connectionstrings.com/visual-foxpro

1.820 Beiträge seit 2005
vor 12 Jahren

Hallo!

Wenn auch der Vorschlag von FZelle nicht hilft, kommst du evtl. mit dem Database-Explorer weiter, die Komponenten daraus kann man auch in eigene Programme einbinden (sind auch Beispiele dazu im Thread).

Nobody is perfect. I'm sad, i'm not nobody 🙁

K
kat_2403 Themenstarter:in
236 Beiträge seit 2007
vor 12 Jahren

Hallo,

ich habe diverse Sachen probiert, FoxPro, mit o.g. Treiber, ich habe es auf Sql2005, auf Sql2008 versucht, ich komm net wirklich ran, immer andere 'Fehlermeldungen.
DAnke.