in zeile von datagridview klicken und zeilen in textboxen anzeigen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von VB1963.

    in zeile von datagridview klicken und zeilen in textboxen anzeigen

    hi,

    ich habe ein kleines programm worin ich ein datagridview habe und dort stehen kundendaten drin.
    ich möchte gern, dass wenn ich in eine zeile eines kunden klicke das dann alle daten wie (vorname, nachname usw. in den jeweiligen textboxen angezigt werden.) leider weiss ich nicht wie ich das anstellen soll.

    ich bekomme es zwar hin das ich die kundendaten in den textboxen angezeigt bekomme das funktioniert aber das ich im datagridview einfach in eine kundenzeile klicke und damit die textboxen fülle bekomme ich nicht hin.

    user2100 schrieb:

    ich bekomme es zwar hin das ich die kundendaten in den textboxen angezeigt bekomme das funktioniert aber das ich im datagridview einfach in eine kundenzeile klicke und damit die textboxen fülle bekomme ich nicht hin.
    Wenn du eine Bindingsource verwendest (hoffentlich) - kannst du ganz einfach via Formsdesigner die Daten an die Text-Property deiner TextBox binden...
    vb-paradise.de/index.php/Attac…31007-Textboxbinding-PNG/
    Wie bekommst du den die Daten in die TextBox?
    also die daten werden bereits mittels bindingsource an die richtigen textboxen gebunden und es wird auch alles korrekt angezeigt. jedoch wird mir dann immer der 1. datensatz angezeigt also der 1. kunde.

    mir wäre es besser wenn der kunde , den ich anklicke(in der datagridview) mir dann in den textboxen angezeigt. also ich klicke kunde 3 an dann soll mir alle daten von kunde 3 in den textboxen angezeigt werden. und wenn ich kunde 8 anklicke im datagridview sollen die daten von kunde 8 in den textboxen angezeigt werden. sprich es sollen nur die daten angezeigt werden die ich vorher im datagridview angeklickt habe.

    hier der code der die daten an die jeweilige textbox bindet. (funktioniert auch)
    leider wird immer nur der 1. datensatz angezeigt also kunde1

    VB.NET-Quellcode

    1. Sub db_bearbeiten()
    2. Dim sqlcmd As New System.Data.SqlClient.SqlCommand
    3. Dim dt As New DataTable
    4. Dim bs As New BindingSource
    5. Dim c As New SqlClient.SqlConnection
    6. Dim b As Binding
    7. sqlcmd.Connection = c
    8. c.ConnectionString = "Data Source=DESKTOP-3IQMJA7\SQLE;Initial Catalog=umanager;Integrated Security=True;"
    9. c.Open()
    10. Dim da As New SqlClient.SqlDataAdapter
    11. da.SelectCommand = (New SqlClient.SqlCommand("SELECT * FROM kundendaten_um", c))
    12. da.Fill(dt)
    13. bs.DataSource = dt
    14. b = New Binding("Text", bs, "vorname")
    15. frmEditKunde.txtVorname.DataBindings.Add(b)
    16. b = New Binding("Text", bs, "nachname")
    17. frmEditKunde.txtNachname.DataBindings.Add(b)
    18. b = New Binding("Text", bs, "geburtstag")
    19. frmEditKunde.txtGeburtstag.DataBindings.Add(b)
    20. b = New Binding("Text", bs, "email")
    21. frmEditKunde.txtEmail.DataBindings.Add(b)
    22. b = New Binding("Text", bs, "anschrift")
    23. frmEditKunde.txtStrasse.DataBindings.Add(b)
    24. b = New Binding("Text", bs, "plz")
    25. frmEditKunde.txtPLZ.DataBindings.Add(b)
    26. b = New Binding("Text", bs, "ort")
    27. frmEditKunde.txtOrt.DataBindings.Add(b)
    28. End Sub

    Der einfache Weg ist aber auch nicht immer der beste.

    Um besser verstehen zu können wie das ganze funktioniert, ist es immer besser wenn Mann es selber programmiert. Mir ist nicht geholfen wenn ich mir das fertige datagridview in eine Form ziehe. Da bin ich hinterher genauso schlau wie vorher.
    Ich möchte lediglich das mir der Datensatz in den Textboxen angezeigt wird den ich vorher im datagridview auswähle. Bzw markiere.

    user2100 schrieb:

    Der einfache Weg ist aber auch nicht immer der beste.


    Stimmt. Wobei der am einfachsten zu gehende Weg ist es das nicht unbedingt, zumindest anfangs. Hat man das dann verstanden, ist es wirklich eine recht einfache Sache.

    user2100 schrieb:

    Um besser verstehen zu können wie das ganze funktioniert, ist es immer besser wenn Mann es selber programmiert.


    Das stimmt auch. Wobei die Videos von ErfinderDesRades gut sind um einen Anfang zu finden. Mir haben die jedenfalls etwas gebracht.

    user2100 schrieb:

    Mir ist nicht geholfen wenn ich mir das fertige datagridview in eine Form ziehe. Da bin ich hinterher genauso schlau wie vorher.


    Nicht? Dann kannst du dir im SourceCode des net.frameworks anschauen wie die DataGridView intern funktioniert. Oder auch auf CodeProject Artikel zu Bindings lesen.
    codeproject.com/Articles/24656…led-Data-Binding-Tutorial
    Cloud Computer? Nein Danke! Das ist nur ein weiterer Schritt zur totalen Überwachung.
    „Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren.“
    Benjamin Franklin

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „NoIde“ ()

    user2100 schrieb:

    Um besser verstehen zu können wie das ganze funktioniert, ist es immer besser wenn Mann es selber programmiert. Mir ist nicht geholfen wenn ich mir das fertige datagridview in eine Form ziehe.
    Dann schaue zumindest einmal den generierten Designercode dazu an...

    user2100 schrieb:

    Ich möchte lediglich das mir der Datensatz in den Textboxen angezeigt wird den ich vorher im datagridview auswähle.
    Wie hast du den deine DGV gebunden - ist im obigen Code nicht ersichtlich...
    Wenn du im Designer nichts zusammen klickern willst, würde auch folgendes gehen:

    1. Klasse „Kunde“ mit allen Properties erstellen
    2. Alle Daten aus der DB in eine DataTable packen
    3. Per Schleife durch die DataTable interieren und einer neuen Instanz der Klasse „Kunde“ alle Eigenschaften zuweisen. Dann diese in eine List( Of Kunde) packen
    4. die List( Of Kunde) dem DataGridView als DataSource zuweisen
    5. im SelectedRow Event (wie auch immer das genau heißt) des DataGridViews die gewählte DataRow „als Kunde casten“ und dann den TextBoxen die Eigenschaften zuweisen.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @user2100

    Das was Du suchst ist folgendes:

    VB.NET-Quellcode

    1. Private Sub DataGridView_Umsaetze_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView_Umsaetze.CellClick
    2. TextBox_SRechnungsnummer.Text = DataGridView_Umsaetze.Item(2, DataGridView_Umsaetze.CurrentRow.Index).Value
    3. TextBox_SBuchungsnummer.Text = DataGridView_Umsaetze.Item(3, DataGridView_Umsaetze.CurrentRow.Index).Value
    4. TextBox_STisch.Text = DataGridView_Umsaetze.Item(4, DataGridView_Umsaetze.CurrentRow.Index).Value
    5. End Sub


    Wenn Du eine Zelle anklickst, dann wird die Zeile ermittelt (.CurrentRow.index) und dann kannst Du die entsprechenden Items aus den Columns in deine Textboxen kopieren.
    Du weist ja als Programmierer selbst welche Columns welche Werte enthalten sollen.
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at
    Man sollte die GUI von den Daten trennen!
    Wenn das DGV und die TextBoxen über die selbe BS an die Daten gebunden sind, ist solch UserCode nicht notwendig...
    Du holst die Daten aus der Zelle eines DGV's und übergibst sie einer TextBox und fummelst in den Controls herum...
    Wenn das DGV über eine BS gebunden ist, kann man doch ganz easy eine TextBox ebenso über die selbe BS binden.
    Siehe das Bildchen im folgenden Link: vb-paradise.de/index.php/Attac…31007-Textboxbinding-PNG/
    @ErfinderDesRades hat dazu sogar ein ausführliches Video-Tutorial erstellt, dass er oben schon angeboten hat!
    Da erspart man sich derlei UserCode...

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „VB1963“ ()

    ok.also mein programm ist eine MDI anwendung. form(kunden_suche) und die form mit den textboxen sind 2 verschiedene fenster.
    ich hatte es mir so gedacht, ich klicke in der form(kunden_suche) vorne in eine zeile, dann öffnet sich das nächste fenster mit den textboxen und darin stehen dann die jeweiligen daten die ich zuvor angeklickt hatte. bisher wird mir immer nur der 1. datensatz angezeigt in den textboxen.

    hier ein bild: