Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - Per code in c# spalten in Accesdatenbank hinzufügen
Dr_Shiwago - Mo 15.02.10 15:16
Titel: Per code in c# spalten in Accesdatenbank hinzufügen
Schönen Guten Tag allerseits. Ich habe ein Probelem mit meiner Accesdatenbank und hoffe mir kann jemand von euch wieterhelfen.
Folgendes Problem:
Ich schreibe etwas in eine Textbox und wenn ich nun ein Button anklicke soll der Inhalt der Textbox die Überschrift einer neuen Spalte in Access sein. Es soll also über den Button-Click eine neue Spalte in Access generiert werden.
Ich hoffe mir kann bei meinem Problem jemand weiterhelfen.
Dr_Shiwago - Mo 15.02.10 15:47
He ich hab doch überhaupt keinen doppelposte gemacht.
danielf - Mo 15.02.10 15:50
Ups... total falsche Baustelle... er schleicht leise davon ...
Zu deinem Problem:
Neue Spalten "dynamisch anzulegen" ist kein guter Stil. Was versuchst du den da? :)
Ich denke der Ansatz ist nicht ganz der Richtige.
Dr_Shiwago - Mo 15.02.10 15:55
Wir haben eine Tabelle in einer Datenbank die als Überschriften Kategorien wie Fleisch,Gemüse usw. enthalten. Diesen Überschhriften sind Produkte untergeordnet. Z.b. steht unter Gemüse: Rotkohl, BLumenkohl usw.. Nun soll der Benutzer falls er eine neue Kategorie anlegen möchte wie z.B. Eis dieses per Button_Click tun können. Und das soll in Access ne neu Spalte ergeben da es ja ne neue Kategorie ist.
danielf - Mo 15.02.10 16:01
Ah.. nun erinnere ich mich. Damals hab ich auch schon Mal die Struktur erwähnt:
danielf hat folgendes geschrieben : |
sondern eine Daten-Struktur definieren die sinnvoll ist (wenn diese noch nicht festgelegt ist).
Also Daten:
Lebensmittel Kategorien Gewicht ABlaufdatum
Tomate 1 100g 8.02.2010
Hackfleisch 2 250g 10.02.2010
Putenbrust 2 500g 13.02.2010
Lachs 3 200g 7.02.2010
Kateogrie Name
1 Gemüse
2 Fleisch
3 Fisch
|
So kannst du eine Kategorie als neuer Eintrag in der Kategorie-Tabelle einfügen. Die Referenzierung geschieht über die ID-Keys.
Gruß Daniel
Dr_Shiwago - Mo 15.02.10 16:16
Wir wollen ja ne andere ansicht haben. Eine tabelle nur stumpf mit Kategorien und darunter deren Produkte. Wir haben die Idee mit den Buttons von dem vorherigen Posts verworfen. Wenn der Benutzer die Combobox Kategorie anwählt öffnen sich alle Kategorienamen. HAt er Fleisch ausgewählt wird in einer anderen ComboBox nun die dazugehörigen Produkte angezeigt. Dies ist relativ simple. Nur wie man eine spalte anlegt bekommen wir nicht hin. So können wir den Produkten die Katekroie zuordnen.
JüTho - Mo 15.02.10 16:24
Hallo,
ich hatte die alte Diskussion nicht so genau verfolgt. Ist es denn nötig, die neuen Kategorien in der DB als neue Spalten einzutragen? Dann geht es nur mit einem SQL-Befehl wie:
SQL-Anweisung
1:
| ALTER TABLE xxx ADD [COLUMN] yyy [Datentyp] |
... der per
OledbCommand.ExecuteNonQuery an die DB geschickt wird.
Du könntest die neue Spalte aber auch manuell nur im Programm hinzufügen per
DataTable.Columns.Add(name, typ).
Gruß Jürgen
Dr_Shiwago - Mo 15.02.10 16:39
An ein DataTableColumnsAdd hab ich uach schon gedacht. Könntest du mir bitte sagen wie ich den Typ deklariere, wenn wir eine Textspalte haben wollen.
JüTho - Mo 15.02.10 18:49
Hab ich dir noch nie den Hinweis auf SDK-Doku/MSDN/Hilfe gegeben? Dort kannst du alles selber nachlesen und Ideen sammeln.
Wie wäre es denn mit typeof(string)?
Jürgen
Dr_Shiwago - Di 16.02.10 16:14
Ich habe die Lösung nun gefunden falls es jemanden interressiert:
OleDbConnection conn = new OleDbConnection(
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=versuch2.mdb;");
String cmdText = "ALTER TABLE Kategorien ADD COLUMN " + TextBox1.Text+ " TEXT(20)";
OleDbCommand command = new OleDbCommand(cmdText, conn);
conn.Open();
command.ExecuteNonQuery();
ene - Di 16.02.10 16:36
Das dein Datenaufbau gegen die Normalisierung verstößt ist dir aber bewußt?
Dr_Shiwago - Di 16.02.10 17:36
he was für eine Normalisierung?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!