Pr3dat0r Geschrieben 15. November 2010 Geschrieben 15. November 2010 Mahlzeit liebe Community, ich sitze nun schon seit einigen Tagen an einem Problem, welches ich nicht lösen kann... Ich erstelle mit folgendem Code in einer Access-Datenbank zwei neue Tabellen: private void button2_Click(object sender, EventArgs e) { ADOX.CatalogClass cat = new ADOX.CatalogClass(); ADOX.TableClass tbl = new ADOX.TableClass(); ADOX.TableClass tbl2 = new ADOX.TableClass(); ADODB.ConnectionClass cn = new ADODB.ConnectionClass(); cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + textBox1.Text.ToString(), "", "", -1); cat.ActiveConnection = cn; tbl.Name = "Tabelle1"; tbl.ParentCatalog = cat; tbl2.Name = "Tabelle2"; tbl2.ParentCatalog = cat; try { //Tabelle1 anlegen cat.Tables.Append(tbl); tbl.Columns.Append("test", ADOX.DataTypeEnum.adInteger, 0); tbl.Keys.Append("Primärschlüssel", KeyTypeEnum.adKeyPrimary, "test", "", ""); tbl.Columns.Append("test2", ADOX.DataTypeEnum.adWChar, 100); tbl.Columns.Append("test3", ADOX.DataTypeEnum.adSingle, 0); tbl.Columns.Append("test4", ADOX.DataTypeEnum.adSingle, 0); //Tabelle2 anlegen cat.Tables.Append(tbl2); tbl2.Columns.Append("test1", ADOX.DataTypeEnum.adInteger, 0); tbl2.Keys.Append("Primärschlüssel", ADOX.KeyTypeEnum.adKeyPrimary, "test1", "", ""); cn.Close; //Tabelle1 füllen } catch { cn.Close(); MessageBox.Show("Fehler!"); } MessageBox.Show("Fertig!"); } } } Und nun würde ich gern die frisch erstellte Tabelle1 mit ein paar Einträgen füllen... Mir raucht der Kopf über die vermeindlich vielen Möglichkeiten: Oledb, adodb, adox... aber ich bekomme es einfach nicht hin! Hat jemand Rat? Vielen Dank im Voraus! Gruß, Pr3dat0r :. Zitieren
lbm1305 Geschrieben 16. November 2010 Geschrieben 16. November 2010 Mahlzeit liebe Community, Mir raucht der Kopf über die vermeindlich vielen Möglichkeiten: Oledb, adodb, adox... aber ich bekomme es einfach nicht hin! Hat jemand Rat? Vielen Dank im Voraus! Gruß, Pr3dat0r :. OleDbCommand + Insert Into? Zitieren
Pr3dat0r Geschrieben 17. November 2010 Autor Geschrieben 17. November 2010 Jap, erste Hürde geschafft... Das Schreiben über DataAdapter unter OLEDB funktioniert anstandslos... Musste nur erst mal kapieren wie das geht :upps Nun habe ich allerdings ein neues Problem... Guten Morgen liebe Community, Alle Felder der neuen Tabellen sind auf "Eingabe erforderlich" eingestellt und ich würde das gerne ändern... Habe nun schon versch. Möglichkeiten ausprobiert: - via ADOX über tbl.Columns["Bezeichnung"].Properties["Nullable"] = true - sowie via ADO über adColNullable komme aber nicht weiter. Meist scheitert es an dieser Fehlermeldung: Fehler bei einem aus mehreren Schritten bestehenden OLE DB-Vorgang. Prüfen Sie die einzelnen OLE DB-Statuswerte, falls vorhanden. Daten wurden nicht verarbeitet. Hoffentlich kann mir jemand helfen... Gruß, Pr3dat0r :. Zitieren
streffin Geschrieben 18. November 2010 Geschrieben 18. November 2010 Spricht was dagegen, dass du dir nen SQL query bastelst, und das dann über ein OleDbCommand ausführst ? create table blablub (col1 int , col2 nvarchar(50),..... ) ? Zitieren
Pr3dat0r Geschrieben 22. November 2010 Autor Geschrieben 22. November 2010 Hab' mir nun doch noch ADOX.Column eingebunden und siehe da... es funktioniert! Dennoch danke für die Unterstützung Zitieren
Empfohlene Beiträge
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.