Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
dBase GetOleDbSchemaTable - Exception
kat_2403
myCSharp.de - Member



Dabei seit:
Beiträge: 240

Themenstarter:

dBase GetOleDbSchemaTable - Exception

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
rasepretrep
myCSharp.de - Member



Dabei seit:
Beiträge: 105

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
kat_2403
myCSharp.de - Member



Dabei seit:
Beiträge: 240

Themenstarter:

beantworten | zitieren | melden

Hallo,

ja ich meine dBase IV.

LG
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10083

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
tom-essen
myCSharp.de - Experte

Avatar #avatar-2140.png


Dabei seit:
Beiträge: 1928
Herkunft: NRW

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
kat_2403
myCSharp.de - Member



Dabei seit:
Beiträge: 240

Themenstarter:

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers