moonbaby Geschrieben 5. März 2007 Geschrieben 5. März 2007 Hallo zusammen, kann mir jemand sagen wie ich eine DataGridView aktualisiere, nachdem ich neue Werte in die Datenbank eingefügt habe? Wenn ich das Programm schließe und neu öffne, sind die neuen Werte da, aber ich würde gerne direkt sehen, was geändert wurde. Ich habe es bisher mit Me.DataGridView1.Refresh() versucht und hab auch mit google keine andere Möglichkeit gefunden. Allerdings tut sich da nix... Bin für jede Hilfe dankbar. LG, moonbaby Zitieren
xk4fu Geschrieben 5. März 2007 Geschrieben 5. März 2007 öhm ich glaube, dass du der, die, das datasource wieder neu füllen musst (das weist du ja dem datagridview zu oder) conn.Open() ds.Clear() da.Fill(ds, "Tabelle") DataGridTabelle.DataSource = ds DataGridTabelle.DataMember = "Tabelle" DataGridTabelle.Refresh() conn.Close() Zitieren
moonbaby Geschrieben 5. März 2007 Autor Geschrieben 5. März 2007 Richtig, daran hatte ich auch schon gedacht, aber dann bleibt das DataGrid komplett leer... Zitieren
xk4fu Geschrieben 5. März 2007 Geschrieben 5. März 2007 weist du das dataset auch dem datagridview neu zu? wichtig ist auch, dataset.clear usw dann sollte es eigentlich gehn *grübel* Zitieren
moonbaby Geschrieben 5. März 2007 Autor Geschrieben 5. März 2007 haha, hat geklappt... war wohl mehr oder weniger nur ein Syntaxfehler.... :upps Also vielen lieben Dank für die schnelle Hilfe! :valen Zitieren
KriZa Geschrieben 21. September 2007 Geschrieben 21. September 2007 Kannst du mir bitte deine Lösung schreiben, ich habe das gleiche Problem und komme nicht voran. Dank und Gruß! Zitieren
dragi Geschrieben 22. September 2007 Geschrieben 22. September 2007 refetch() statt refresh()? Gruß dragi Zitieren
KriZa Geschrieben 24. September 2007 Geschrieben 24. September 2007 mhh, keines der objekte die ich nutze hat refetch als member. mein datagridview baut sich folgenderrmaßen auf: dt = New DataTable da = New MySqlDataAdapter("SELECT ID, corr_KundenNr, ... FROM table WHERE corr_KundenNr = '" & Kundennummer & "'", conn) da.Fill(dt) cb = New MySqlCommandBuilder(da) KV.DataSource = dt weder dt, noch da oder cb unterstützen ein objekt namens refetch... :confused: Zitieren
KriZa Geschrieben 24. September 2007 Geschrieben 24. September 2007 Ich habe da.Fill(dt) probiert, das bringt zwar ein ergebnis, aber jetzt werden die einträge aus der db einfach an die vorhandenen angefügt... somit muss ich vorher entweder die einträge löschen oder die datasource verbindung entfernen. aber: Frage: wenn ich die einträge über dgv.rows.clear() lösche, löscht er auch die einträge in der DB? der befehl scheint aber auch irgendwie nicht zu funktionieren, denn er gibt mir eine fehlermeldung aus: 'Der Vorgang kann mit diesem Ereignishandler nicht durchgeführt werden.' momentan mach ich es so: nach jedem RowValidated kommt: DGV.EndEdit() dim changes as DataTable = dt.GetChanges() if not changes is nothing then da.update(changes) dt.acceptchanges() DGV.Rows.Clear 'funktioniert nicht! da.fill(dt) 'hängt aktuelles Queryergebnis einfach an das vorhandene an... end if oder wie kann man die aktuelle dataource verbindung kappen, oder eine neue zuweisen? Zitieren
KriZa Geschrieben 24. September 2007 Geschrieben 24. September 2007 OK OK OK, :old :old :old :upps :upps :upps man sollte natürlich nicht versuchen, das datagridview zu leeren, das wird nix... man muss die datatable mit den ganzen Werten leeren. dt.clear() da.fill(dt) bringt dann doch den erhofften erfolg... ist ja auch klar, wenn man das datagridview an die datatable bindet, dass das dgv nur die werte zeigt, die in der table sind. :floet: :floet: :floet: Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.