vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2020
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Datagridview zeigt hinzugefügten Datensatz nicht an 
Autor: ERBRU
Datum: 06.09.20 14:26

habe ein Dataset erstellt auf meiner Form eine DGV gezogen Buttons hinzugefügt
sowie eine Form für die NeworEdit Row

  Private Sub btnNeu_Click(sender As Object, e As EventArgs) Handles _
    btnNeu.Click, btnEdit.Click
        Select Case True
            'Datensatz hinzufügen
            Case sender Is btnNeu
                Using frmAddAufgabe As New frmNewOrEditAufgabe
                    frmAddAufgabe.BSTODO.DataSource = BSTODO.AddNew
                    If frmAddAufgabe.ShowDialog(Me) <> _
                      Windows.Forms.DialogResult.OK Then Return
                    BSTODO.EndEdit()
 
                End Using
            Case sender Is btnEdit
                If BSTODO.Count = 0 Then
                    Return
                End If
                'Datensatz editieren
                Using frmAddAufgabe As New frmNewOrEditAufgabe
                    frmAddAufgabe.BSTODO.DataSource = BSTODO.Current
                    If frmAddAufgabe.ShowDialog(Me) <> _
                      Windows.Forms.DialogResult.OK Then Return
                    BSTODO.EndEdit()
 
                End Using
        End Select
 
 
    End Sub
das funktioniert soweit auch alles, nur zeigt die hinzugefügte Row keine Daten erst wenn ich da drauf klicke

beim schließen der Form soll er den hinzugfügten Datensatz aber sofort anzeigen.
Ich muss immer die DGV klicken damit die Daten angezeigt werden in der Neuen Row

wie bekomme ich das hin ?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datagridview zeigt hinzugefügten Datensatz nicht an 
Autor: Manfred X
Datum: 06.09.20 16:57

Hallo!

Im Code wird im Using-Block temporär jeweils eine Instanz eines
Dialog-Formulars erstellt.

Wenn über die Bindingsource BSTODO ein Datensatz hinzugefügt oder
geändert wird, stehen diese Änderungen in der Datenquelle.
Was Du benötigst, ist vermutlich ein Reset der Bindingsource nach
Beendigung des Dialogs.

(Du stellst eine Datenbindung im Dialog her, übergibst also keine
Referenz der Bindingsource).

Beitrag wurde zuletzt am 06.09.20 um 17:04:42 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datagridview zeigt hinzugefügten Datensatz nicht an 
Autor: ERBRU
Datum: 06.09.20 17:30

nach
Beendigung des Dialogs. ?

welchen Dialog, wie kann ich es testen bzw. wo setze ich das Reset ein ?

Danke
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datagridview zeigt hinzugefügten Datensatz nicht an 
Autor: ERBRU
Datum: 07.09.20 07:34

Hallo Manfred X

hier mal meine Lösung:

habe mir eine Hilfsklasse erstellt mit dieser Funktion:

  Public Function Aufgaben_Form(ByVal Form_Use As Frm_Use, ByVal Aufgabe As _
    TODORow) As TODORow
        'keine aktuelle Aufgabe gewählt / vorhanden
        If Aufgabe Is Nothing Then Return Nothing
        Using editor As New frmAufgabenbeschreibung
            With editor
                ' Hier der Form mitteilen das es Bearbeitet wird
                .Bearbeiten = Form_Use
                Select Case Form_Use
                    Case Frm_Use.Bearbeiten
                        .AufgabenartTextBox.Text = Aufgabe.Aufgabenart
                        .EintragTextBox.Text = Aufgabe.Eintrag
                        .AufgabeTextBox.Text = Aufgabe.Aufgabenbeschreibung
                        .cberledigt.Checked = Aufgabe.Status
                End Select
                If .ShowDialog = Windows.Forms.DialogResult.OK Then
                    ' hier die Daten der Form abholen. Sobald da das OK 
                    ' zurückkommt
                    Aufgabe.Aufgabenart = .AufgabenartTextBox.Text
                    Aufgabe.Eintrag = .EintragTextBox.Text
                    Aufgabe.Aufgabenbeschreibung = .AufgabeTextBox.Text
                    Aufgabe.Status = .cberledigt.Checked
                    If Form_Use = Frm_Use.Neu Then
                        ' Status setzen
                        ReturnStatus = Frm_Use.Neu
                    Else
                        ReturnStatus = Frm_Use.Bearbeiten
                    End If
                End If
            End With
 
        End Using
        Return Aufgabe
    End Function
in der Main Form (Form1) rufe ich die Form für das hinzufügen oder editieren eines Datensatz auf
 Private Sub btnNeu_Click(sender As Object, e As EventArgs) Handles _
   btnNeu.Click, btnEdit.Click
        ' Neue DRV
        Dim DRV As TDDS.TODORow = Nothing
        ' Neue Instanz der Hilfsklasse
        Dim Aufgabe As Hilfsklasse = New Hilfsklasse
        ' Den Button ermitteln
        Dim Btn As Button = CType(sender, Button)
        If Btn Is btnNeu Then
            ' Neue DRV erstellen und weiter geben
            DRV = TDDS.TODO.NewTODORow
            ' Die Daten Zeile der DataTable zufügen
            Aufgabe.Aufgaben_Form(Hilfsklasse.Frm_Use.Neu, DRV)
        ElseIf Btn Is btnEdit Then
            ' Hier ändern wir den Eintrag. Dazu die Current DataRow übernehmen
            DRV = TODO_TypRow
            ' Hier merken wir uns den Eintrag 
            Dim Merker_Beschreibung As String = DRV.Aufgabenbeschreibung
            ' Die Form Aufgaben anzeigen und die Daten weitergeben
            Aufgabe.Aufgaben_Form(Hilfsklasse.Frm_Use.Bearbeiten, DRV)
            '### hier fragen wir ob sich an der Aufgabe was geändert hat
            If DRV.Aufgabenbeschreibung <> Merker_Beschreibung Then
                MessageBox.Show("Es wurde was geändert")
            End If
        End If
        ' Wenn es ein neuer Eintrag ist ...
        If Aufgabe.ReturnStatus = Hilfsklasse.Frm_Use.Neu Then
            Try
                TDDS.TODO.AddTODORow(DRV)
            Catch ex As Exception
                MsgBox("Fehler: " & ex.Message, MsgBoxStyle.Exclamation, _
                  "prüfen")
            End Try
 
        End If
        ' Nach jedem neuen oder geänderten Datensatz gleich Speichern.
        saveDB()
        ' gehe zum letzten Eintrag
        BSTODO.MoveLast()
    End Sub
es funktioniert https://ibb.co/16L2n5G jetzt möchte ich das erreichen s. Bild
kannst du helfen ? das wäre Super
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datagridview zeigt hinzugefügten Datensatz nicht an 
Autor: ERBRU
Datum: 07.09.20 11:50

ich habe einen Ansatz gefunden, leider funktiniert das nicht weil die DGV gebunden ist und die obigen Datarows nicht entfernt werden.

  Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles _
    btnAdd.Click
        For i As Integer = 0 To TODODataGridView.Rows.Count() - 1 Step +1
            Dim rowAlreadyExist As Boolean = False
            Dim check As Boolean = TODODataGridView.Rows(i).Cells(4).Value
            Dim row As DataGridViewRow = TODODataGridView.Rows(i)
            If check = True Then
 
                If ErledigtDataGridView.Rows.Count() > 0 Then
                    For j As Integer = 0 To ErledigtDataGridView.Rows.Count() - _
                      1 Step +1
                        If row.Cells(0).Value.ToString() = _
                        ErledigtDataGridView.Rows(j).Cells(0).Value.ToString() _
                        Then
                            rowAlreadyExist = True
                            Exit For
                        End If
                    Next
 
                    If rowAlreadyExist = False Then
                        ErledigtDataGridView.Rows.Add(row.Cells( _
                          0).Value.ToString(), _
                                                      row.Cells( _
                                                      1).Value.ToString(), _
                                                      row.Cells( _
                                                      2).Value.ToString(), _
                                                      row.Cells( _
                                                      3).Value.ToString(), _
                                                      row.Cells(4).Value)
                    End If
                Else
                    ErledigtDataGridView.Rows.Add(row.Cells(0).Value.ToString( _
                      ), _
                                                        row.Cells( _
                                                        1).Value.ToString(), _
                                                        row.Cells( _
                                                        2).Value.ToString(), _
                                                        row.Cells( _
                                                        3).Value.ToString(), _
                                                        row.Cells(4).Value)
                End If
            End If
        Next
    End Sub
wer kann da mal helfen ?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datagridview zeigt hinzugefügten Datensatz nicht an 
Autor: ERBRU
Datum: 07.09.20 12:49

da war ich wohl zu langsam

in einer ungebundenen DGV passt es soweit wie im vorherigen Post beschrieben

https://ibb.co/V3XSNrC hier ein Bild dazu
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datagridview zeigt hinzugefügten Datensatz nicht an 
Autor: ERBRU
Datum: 08.09.20 09:46

Guten Morgen,

ich denke habs nun hinbekommen ich verschiebe die Daten in andere Tabelle und entferne dann die entsprechenden Zeilen in der DGV speichern fertig

getestet funktioniert https://ibb.co/GvJKGY9 erwarte Kritik Danke!

eventuell würdet ihr es anders machen, dann bitte her damit.

  Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles _
    btnAdd.Click
        Daten_erledigt_speichern()
        'Dataset speichern
        saveDB()
    End Sub
    '// Daten verschieben in die Tabelle TODOFERTIG
    Private Sub Daten_erledigt_speichern()
        Me.Cursor = Cursors.WaitCursor
        For i As Integer = 0 To TDDS.TODO.Rows.Count - 1
            Dim rowAlreadyExist As Boolean = False
            Dim row As DataRow = TDDS.TODO.Rows(i)
            Dim drNew As DataRow = TDDS.TODOFERTIG.NewRow()
            If row("Status") = True Then
                drNew.ItemArray = row.ItemArray
                TDDS.TODOFERTIG.Rows.Add(drNew)
            Else
                'MessageBox.Show("Check", "Status", MessageBoxButtons.OK, 
                ' MessageBoxIcon.Information)
            End If
        Next i
        Me.Cursor = Cursors.Default
        Daten_erledigt_entfernen()
    End Sub
    '// Daten nach verschieben in die Tabelle aus der DGV TODO entfernen
    Private Sub Daten_erledigt_entfernen()
        Me.Cursor = Cursors.WaitCursor
        Dim intRowCounter As Integer = 0
        While intRowCounter <> -1
            If intRowCounter < TODODataGridView.RowCount Then
                If TODODataGridView.Rows(intRowCounter).Cells(4).Value = True _
                  Then
                    TODODataGridView.Rows.Remove(TODODataGridView.Rows( _
                    intRowCounter))
                Else
                    intRowCounter += 1
                End If
            Else
                intRowCounter = -1
            End If
 
        End While
        Me.Cursor = Cursors.Default
        MessageBox.Show("Aktion erfolgreich", "Status", MessageBoxButtons.OK, _
          MessageBoxIcon.Information)
    End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datagridview zeigt hinzugefügten Datensatz nicht an 
Autor: thuring
Datum: 12.09.20 10:59

Schau eventuell mal bei meinem Tipp:
DataGridview mit SQL-DataSource: Aktualisieren eines neuen verbundenen Datensatzes

Salzburger

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datagridview zeigt hinzugefügten Datensatz nicht an 
Autor: ERBRU
Datum: 12.09.20 11:09

Danke kannst du das verlinken, so findet man es nicht
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datagridview zeigt hinzugefügten Datensatz nicht an 
Autor: thuring
Datum: 12.09.20 11:12

Ist ein Tipp hier im vbArchiv.
https://www.vbarchiv.net/tipps/tipp_2479-datagridview-mit-sql-datasource-aktualisieren-eines-neuen-verbundenen-datensatzes.html

Salzburger

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datagridview zeigt hinzugefügten Datensatz nicht an 
Autor: ERBRU
Datum: 12.09.20 11:30

OK habe ich mir angeschaut werde mal sehen ob ich damit klarkomme
Danke.
Nun Habe ich wieder eine Idee die ich allein nicht umsetzen kann und
ich weiß nicht ob ich da ein neues Thema aufmachen sollte

ich versuche aktuell ohne Erfolg da eine Progressbar in die DGV Zelle zu zeichnen
wer hat da eine Idee, 2 3 Sachen aus dem Netz konnte ich nicht umsetzen.

https://ibb.co/j5w1XQS

Danke wenn da jemand eine Idee zu hat.

Beitrag wurde zuletzt am 12.09.20 um 11:36:49 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Datagridview zeigt hinzugefügten Datensatz nicht an 
Autor: ERBRU
Datum: 13.09.20 10:19

habe es hinbekommen

mittels Klasse und im CellPainting Ereignis

Ergebnis wie ich es möchte.
https://ibb.co/9WTQbB2
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2020 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