Zum Inhalt springen

[C#] Verknüpfung einer Access-Tabelle


Empfohlene Beiträge

Geschrieben

Guten Morgen liebe Community,

ich bin soeben dabei, eine Verknüpfung auf Access-Ebene via C#-Code einzubinden. Mein Konstrukt sieht folgendermaßen aus:

ADOX.CatalogClass cat = new ADOX.CatalogClass();

ADOX.TableClass tbl = new ADOX.TableClass();


ADODB.ConnectionClass cn = new ADODB.ConnectionClass();


cn.Open(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=V:\\db1.mdb", "", "", -1);


cat.ActiveConnection = cn;


tbl.Name = "tName";

tbl.ParentCatalog = cat;



tbl.Properties["Jet OLEDB:Link Datasource"].Value = "V:\\db2.mdb";

tbl.Properties["Jet OLEDB:Remote Table Name"].Value = "tName";

tbl.Properties["Jet OLEDB:Create Link"].Value = true;


cat.Tables.Append(tbl);

cn.Close();

Die Verknüpfung legt er mir sauber an, allerdings bekomme ich es nicht hin, dass er den Append-Schritt auslässt, wenn die verknüpfte Tabelle schon existiert. Somit läuft er mir bei erneutem Drüberrattern in einen Fehler (das Objekt "tName" existiert bereits).

Mein zweites Problem ist dann die Pfadangabe via Variablen, die ich habe.

Der zweite Pfad (db2.mdb) scheint zu funktionieren, aber der erste (db1.mdb) will einfach nicht...

Ich bitte um Hilfe!

Vielen Dank im Voraus!

Gruß,

Pr3dat0r :.

Geschrieben

Hi,

mach doch einfah eine IF-Anweisung drüber in der er nur reingeht und append ausführt wenn die Tabelle nicht vorhanden ist.

Soviel ich weis kann man die Parameter vom User/Password etc weglassen wenn keine vorhanden/genutzt nicht benötigt werden, dies machst du ja auch beim 2ten da lässt du es auch weg. Versuchs vll gehts ja wenn du die Parameter weglässt weil wenn "" drinsteht sucht er nach "" und findest es ned wär was anderes wenn du null/string.empty übergibst.

Geschrieben

Hi und danke erst mal für die Antwort!

An einer If-Anweisung hab ich auch schon etwas rumexperimentiert. Aber wie frage ich denn ab ob die Tabelle schon existiert?

Wenn ich die DataSource auf

cn.Open(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=V:\\db1.mdb", -1);
anpasse, erscheint folgender Fehler:
Fehler 1 Keine Überladung für die Open-Methode nimmt 2 Argumente an.
Auch bei
cn.Open(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=V:\\db1.mdb");

kommt ein ähnlicher Fehler:

Fehler 1 Keine Überladung für die Open-Methode nimmt 1 Argumente an.
Geschrieben

Ansonsten hilft auch der (OleDb)ConnectionStringBuilder.


PseudoCode:

ConnectionStringBuilder conBuilder = new ConnectionStringBuilder()

conBuilder.DataSource = "XXXXXX";


string conString = conBuilder.ToString();

Geschrieben

Danke für die Antwort!

Das hab ich nach etwas Gebastel hinbekommen:

System.Text.StringBuilder sb = new System.Text.StringBuilder();

sb.Append(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=")

sb.Append(dbsFK);

cn.Open(sb.ToString(), "", "", -1);

Nu fehlt mir noch die Abfrage, ob es die Verknüpfung schon gibt...

Help!

Geschrieben

Moin,

es gibt jeweils eine (OleDb)/(Sql)ConnectionStringBuilder-Klasse und eine StringBuilder-Klasse.

Beim ConnectionStringBuilder kommt halt noch der jeweilige Datenprovider davor. Die Klasse baut sich den ConnectionString dann auch korrekt zusammen.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...