Veröffentlicht 5. März 200718 j 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
5. März 200718 j ö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()
5. März 200718 j Richtig, daran hatte ich auch schon gedacht, aber dann bleibt das DataGrid komplett leer...
5. März 200718 j weist du das dataset auch dem datagridview neu zu? wichtig ist auch, dataset.clear usw dann sollte es eigentlich gehn *grübel*
5. März 200718 j haha, hat geklappt... war wohl mehr oder weniger nur ein Syntaxfehler.... :upps Also vielen lieben Dank für die schnelle Hilfe! :valen
21. September 200717 j Kannst du mir bitte deine Lösung schreiben, ich habe das gleiche Problem und komme nicht voran. Dank und Gruß!
24. September 200717 j 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:
24. September 200717 j 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?
24. September 200717 j 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:
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.