Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - Update / Add / Delete in einem Datagridview
soli - Di 19.05.09 13:23
Titel: Update / Add / Delete in einem Datagridview
Hallo Freunde der Sonne!
Ich versuche mich gerade an einem kleinen Hardware Verzeichnis, welches seine Daten aus einer SQL Datenbank bezieht und in einem Datagridview anzeigt.
Das funktioniert auch soweit und ne kleine Sortierung nach den jeweiligen Raumnummern klappt auch...
Die BindiungSource und der Tableadapter sind korrekt eingebunden...
Allerdings krieg ich die weiteren Funktionen wie Update / Add / Delete nicht ans Laufen :(
Hab jetzt 2 Tage versucht mir in verschiedenen Foren was zusammenzukramen und zu adaptieren... leider nur mit mäßigem Erfolg :(
Wäre super wenn von euch einer einem Neuling wir mir, ein wenig weiterhelfen könnte... auch wenn die Frage ein wenig laienhaft gestellt ist... :)
Wie nutze ich die UpdateFunktion vom Datagridview oder wie muss eine korrekte Update Abfrage (Beispielhaft) im Dataset aussehen? *verzweifel*
Ein weiteres Hauptproblem ist, dass mein TableAdapter keine Update Funktion besitzt... ich glaub da liegt das eigentliche Problem... was mach ich falsch :( ?
Vielen Dank schonmal,
Gruß soli
JüTho - Di 19.05.09 16:14
Hallo und :welcome:
soli hat folgendes geschrieben : |
Wie nutze ich die UpdateFunktion vom Datagridview oder wie muss eine korrekte Update Abfrage (Beispielhaft) im Dataset aussehen? *verzweifel* |
Ein Blick in die
SDK-Doku/MSDN (auch über F1 erreichbar) zeigt, was die
Update-Methode des
DataGridView macht (wie bei jedem Control):
Zitat: |
Bewirkt, dass das Steuerelement die für ungültig erklärten Bereiche im Clientbereich neu zeichnet. |
Das hat also überhaupt nichts mit einer Änderung der Daten zu tun.
soli hat folgendes geschrieben : |
Ein weiteres Hauptproblem ist, dass mein TableAdapter keine Update Funktion besitzt... ich glaub da liegt das eigentliche Problem... was mach ich falsch :( ? |
Das könnte das Problem sein. Ein
DbDataAdapter (auch ein TableAdapter) kann nur dann die SQL-Befehle zur Datenspeicherung erstellen, wenn der verwendete Select-Befehl sich nur auf eine einzige Tabelle der Datenbank bezieht und das Feld für den PrimaryKey benutzt.
Allgemeine Erläuterungen: Unter NET wird getrennt zwischen den Daten auf der Festplatte (Datenbank), den Daten im Arbeitsspeicher (DataSet, DataTable) und den GUI-Elementen (z.B. DataGridView). Zur Verbindung zwischen den Daten der Festplatte und im Arbeitsspeicher dienen u.a. DbDataAdapter, zur Verbindung zwischen den DataSet und den Controls dienen DataBinding/DataSource/BindingSource. (Der TableAdapter ist dabei so etwas wie DbDataAdapter und DataTable in einem Stück.) Änderungen werden nicht (NIEMALS!) per DataGridView an die DB geschickt, sondern immer (IMMER!) vom DataSet aus. Einer der Standardbefehle dazu ist
DbDataAdapter.Update.
Zur
Einführung verweise ich auf
OpenBook Visual C# [
http://openbook.galileocomputing.de/visual_csharp/] Kap.25 ff.
Übrigens gibt es in NET/C# keine Funktionen und Prozeduren; alles sind Methoden.
Gruß Jürgen
soli - Di 19.05.09 17:30
Hallo Jürgen! Danke für deine schnelle Antwort!
edit:
Hab den Fehler gefunden! Musste im Dataset in den Eigenschaften erst die Update/Delete/Add Befehle hinzufügen... das funktioniert soweit... da war wohl das Problem :)
Nur der SQL Command macht mir jetzt Probleme... der muss ja variable sein... bzw wie muss der Beispielhaft lauten?i
nochmal edit:
hab den richtigen sql befehl gefunden :D hab noch n paar Fehler aber ich habs schon ansatzweise am Laufen... wird schon :)
Vielen Dank schonmal für deine Hilfe!!
Einen schönen Abend noch,
Gruß Marc
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!