| |

ADO.NET / DatenbankenRe: Beziehungen mit AutoID | |  | Autor: IIIIIChrisIIIII | Datum: 22.08.08 16:06 |
| Hallo FZelle,
nochmal Danke für deinen weiteren Beitrag. Das Hilft mir ungemein weiter.
Zu 1.: Wieso ist eine globale Connection nicht gut? Ich habe bisher immer so gearbeitet, dass ich mir auf Modulebene die geöffnete Connection in einer Variable gespeichert habe und anschließend jedesmal, wenn ich Daten anzeigen lassen wollte, diese über eine SQL-Anweisung mittels einer Command an den Adapter geschickt habe, der wiederum eine DataTable gefüllt hat. Jedes mal für eine Command brauch ich allerdings die Connection... daher global.
Wenn ich dann die Daten speichern wollte, also Änderungen an der DB vornehmen wollte, hab ich eine neue Command erstellt, die eine entsprechende INSERT/UPDATE/DELETE-SQL-Anweisung enthielt und sie mittels SendNonQuery (oder wie die Methode heißt -bin grad nicht zu Hause und hab kein VS zur Hand) an die DB geschickt.
D.h. ich hab meine durch ein Forumlar angezeigten und vom User veränderten Daten eigenständig auf Änderungen hin überprüft und dann einzeln immer die Commands erstellt und an die DB geschickt (ne menge Arbeit kann ich nur sagen ;)). Dann hab ich das neulich rausgefunden mit dem Adapter, dass man da ja die INSERT, SELECT, DELETE und UPDATE-Anweisungen einstellen kann und dass der dann automatisch die Datenbank aktualisiert wenn man die Update-Methode auf eine entsprechende DataTable ausführt. Das ist natürlich viel komfortabler...
Wie schon gesagt, ich bin noch auf der Suche nach der richtigen Vorhergehensweise, wie man "gescheit" arbeitet. Ich hab auch gesehen, dass man mit der Entwicklungsumgebung (GUI) mittels des Assistenten die Tabellen gleich von vorn herein als Objekte einfügen kann. Aber das halte ich für ziemlich schlecht, denn dann lädt er ja die ganzen Daten der Tabellen in den speicher und wenn die Tabellen mehrere Milliarden Einträge enthalten, muss man erstmal ewig warten ehe die Objekte geladen sind und außerdem kann es schnell zu einem Speicherproblem führen.
Zu 2.: Das war nur ein Test/Beispiel. In der Praxis sieht es so aus, dass Daten in eine Liste angezeigt werden. Jeder Listeneintrag kann hinzugefügt, bearbeitet oder entfernt werden. Dann kann man zu jedem Listeneintrag weitere Einstellungen abrufen (das ist dann sozusgen die Order-Tabelle).
Das neue Forumlar wiederum hat auch bezug zu einer Tabelle, die wiederum Querverweise enthält. Alles ziemlich kompliziert. Meine Idee war es alle Tabellen in den Speicher mittels der DataTables zu holen (sind nicht viele Zeilen) und die vom User gemachten Einträge direkt in die DataRows zu speichern. Später würde ich dann für alle Tabellen T Adapter.Update(T) ausführen. Das Problem das dabei aufgetreten ist, war bei der "Parent"-Tabelle, dass wenn der User eine neue Zeile einfügt und anschließend das Formular dieser Zeile abruft und dort wiederum Zeilen einfügt, diese keinen Foreign-Key haben.
Zu 3.: Also wenn ich jetzt richtig verstehe, was ORMapper sind, dann ist das doch so in der Art der Diagrammdesigner bei VS. Damit kann ich auch gleich Objekte erstellen, dessen Signatur automatisch auch Code-Technisch übernommen wird. Und wie gesagt, VS hat ja auch so einen Assistenten, dass man die alle Tabellen in je ein Objekt packt. Oder hab ich was falsch verstanden?
Und ja, dein Code sieht schon verdammt einfach aus!
Ich glaube mir fehlt noch eine grundlegende Struktur, wie man mit den Daten einer DB in VS arbeitet...
Ich werd mir jetzt erstmal Retina.NET anschauen.
Viele Grüße,
Chris |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevISDN 1.0 
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) sevZIP40 Pro DLL 
Zippen und Unzippen wie die Profis!
Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Weitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|