Hi,
Ich möchte gerne eine Access Tabelle mit c# erstellen. Ich weiß, wie ich auf bereits bestehende Tabellen zugreifen kann, wie ich diese verändern kann, doch ich finde nicht raus, wie ich eine neue Tabelle in einer bereits vorhanden DB anlege. 🤔 Kann mir irgendjemand helfen? Mir langt ein link oder zwei, drei Zeilen code.
Danke
Embae
Weiß gar nicht genau, ob das mit ADO.net überhaupt geht. Versuch's doch mal über die ADOX-Library, die mußt du aber erst durch einen Verweis in deinem Projekt hinzufügen. Dort gibt es dann das Catalog-Objekt, dass die Datenbank repräsentiert und ein Table-Objekt, mit dem du neue Tabellen hinzufügen kannst.
Also ungefähr so:
ADOX.Catalog catalog = new ADOX.Catalog();
ADOX.Table table = new ADOX.Table();
ADODB.Connection connection = new ADODB.Connection();
connection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; DataSoure=c:\\meineDatenbank.mdb";
connection.Open(null,null,null,0);
catalog.ActiveConnection = connection;
Jetzt gibst du dem Kind noch einen Namen und kümmerst dich um die Spalten:
table.Name = "Kunden";
table.Columns.Append("Nachname", DataTypeEnum.adVarWChar, 50);
table.Columns.Append("Vorname", DataTypeEnum.adVarWChar, 50);
Schließlich mußt du die Tabelle noch deinem Catalog-Objekt zuordnen:
catalog.Tables.Append(table);
Hmm...hoffe das stimmt so!
Müsste auch mit ADO.NET gehen ... oder akzeptiert das Command Objekt etwa nur SELECT/INSERT/UPDATE/DELETE und keine "CREATE TABLE ..." SQL Statements?
👍 Habe es mit CREATE TABLE versucht, und es geht... Echt super, danke...
Embae
ADOX wird nur gebraucht, wenn die MDB-Datei noch nicht existiert.