Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - Tabellen kopieren bzw. erstellen?
Christoph1972 - Fr 05.12.08 20:25
Titel: Tabellen kopieren bzw. erstellen?
Hallo zusammen,
kann man in einer Datenbank Tabellen kopieren?
Ich habe mir das etwa so vorgestellt, ich lege eine Vorlage in der DB ab und der User kann dann zur Laufzeit diese kopieren. Ist so etwas möglich? Oder geht man einen anderen Weg, wenn die Anzahl der Tabellen dynamisch sein soll?
Gruß & ein schönes Wochenende!
Christoph
Christoph1972 - Fr 05.12.08 23:37
OK, dann tu ich mal selber Butter bei die Fische :D
Tabelle kopieren == Banane;
ich glaube so ist das doch viel schöner :
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| SqlCommand Cmd = null; SqlConnection Conn = null; try { Conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=" + (@"C:\Dokumente und Einstellungen\Keiner\Eigene Dateien\DynamischeTabellenAnzahl.mdf" + ";Integrated Security=True;Connect Timeout=30;User Instance=True")); Conn.Open();
Cmd = new SqlCommand("CREATE TABLE Stoffliste (Stoff char(50),Info char(25))", Conn); Cmd.ExecuteNonQuery();
} catch (SqlException Error) { MessageBox.Show("Verbindungs-Fehler: " + Error.Message); Conn.Close(); } |
Oder?
Gruß
Christoph
JüTho - Sa 06.12.08 12:15
Hallo Christoph,
naja, möglich ist es so, aber das entspricht eher nicht einem vernünftigen Datenbank-Konzept.
Zum einen fehlt alles, was ein relationales DBMS ausmacht, insbesondere der PrimaryKey. Doubletten sind grundsätzlich nicht schön. Außerdem unterliegt die DB-Struktur grundsätzlich dem Manager (= Programmentwickler) und nicht dem Anwender.
Wenn in der Praxis überhaupt so etwas sinnvoll sein soll, dann darfst Du eine spezielle Tabelle für benutzerabhängige Inhalte vorbereiten. Wenn Du schon "eine Vorlage in der DB" ablegen willst, dann erweitere diese so, dass sie dynamisch benutzt werden kann. Beispiel: Ein Feld enthält eine ID (es gibt viele Programmierer, die dafür GUID empfehlen); Feld weist auf die laufende Nummer hin; auf dieses Feld muss natürlich ein Index gelegt werden; eine andere Tabelle verknüpft die laufende Nummer mit einem Benutzer (soweit das gewünscht wird); Abfragen werden mit WHERE immer auf den Benutzer bezogen.
Jürgen
Christoph1972 - Sa 06.12.08 14:11
Hi,
vielen Dank für die Antwort! Ich werde wohl doch mit einer Tabelle arbeiten und den einzelnen Datensätzen einen Schlüssel zuweisen und dann filtern.
Gruß
Christoph
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!