Autor Beitrag
Dr_Shiwago
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Mo 15.02.10 15:16 
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.
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mo 15.02.10 15:42 
Hallo,

wenn du einen Doppelposte machst, bitte verlink ihn.

Danke und Gruß
Daniel
Dr_Shiwago Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Mo 15.02.10 15:47 
He ich hab doch überhaupt keinen doppelposte gemacht.
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Mo 15.02.10 16:01 
Ah.. nun erinnere ich mich. Damals hab ich auch schon Mal die Struktur erwähnt:
user profile icondanielf hat folgendes geschrieben Zum zitierten Posting springen:
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: 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.
Einloggen, um Attachments anzusehen!
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: 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:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Di 16.02.10 16:36 
Das dein Datenaufbau gegen die Normalisierung verstößt ist dir aber bewußt?

_________________
Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
Dr_Shiwago Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Di 16.02.10 17:36 
he was für eine Normalisierung?
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Di 16.02.10 18:37 
Durch Normalisierung (Datenbank) wird verhindert, dass überflüssigerweise Daten doppelt gespeichert werden.

Außerdem solltest du mal nachlesen, dass/wie Code als solcher markiert wird. Jürgen