| |
VB.NET - Ein- und UmsteigerDatagridview 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 ? | |
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. | |
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 | |
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 | |
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 ? | |
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 | |
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 | |
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 | |
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 | |
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 | |
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. | |
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 | |
| 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 |
|
|
sevOutBar 4.0
Vertikale Menüleisten á la Outlook
Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
Copyright ©2000-2024 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
|
|