Datagridview with Binding Xml-Database without Designer I
Das Dataset enthält eine m:n-Beziehung. Beim Einlesen der Xml in das Dataset, müssen bestimmte Sachen beachtet werden.
Dieses Beispiel ist einfach gehalten, und auch für Anfänger gut nachvollziehbar.
Rückspeicherung bei Veränderung der Daten im DatagridView, werden hier noch nicht beachtet.
Das würde mit dieser Funktion gehen. Einfach in die Form1 einfügen:
Private Sub CellEndEditDgv(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvPersonen.CellEndEdit, dgvRolle.CellEndEdit, dgvRollePersonenRolle.CellEndEdit, dgvPersonenPersonenRolle.CellEndEdit
Me.dgvRolle.Update() : Me.dgvRolle.EndEdit()
Me.dgvPersonen.Update() : Me.dgvPersonen.EndEdit()
Me.dgvRollePersonenRolle.Update() : Me.dgvRollePersonenRolle.EndEdit()
Me.dgvPersonenPersonenRolle.Update() : Me.dgvPersonenPersonenRolle.EndEdit()
Call Save()
End Sub
Die Routine für das Generieren der Daten in das Dataset. Wie gemäss Film an den entsprechenden Ort einfügen:
Private Sub GenerateData()
Dim dtDate As DateTime = Nothing
With DsPersonenRolle
.Clear()
For aa1 As Integer = 0 To 6
dtDate = New DateTime(620000000000000000 + 1000000000000000 * aa1)
.Personen.AddPersonenRow("Vorname_" & aa1, "Nachname_" & aa1.ToString, dtDate, CUInt((Date.Now.Year - dtDate.Year)))
Next
For aa1 As Integer = 0 To 6
.Rolle.AddRolleRow("Applikation_" & aa1.ToString, "Entwickler_" & aa1.ToString, "Designer_" & aa1.ToString, "Produktmanager_" & aa1.ToString, "Projektmanager_" & aa1.ToString)
Next
Dim iPR As Integer = 0
For iPers As Integer = 0 To 3
For iRoll = 2 To 6
Dim rwPers As dsPersonenRolle.PersonenRow = .Personen(iPers)
Dim rwRoll As dsPersonenRolle.RolleRow = .Rolle(iRoll)
Dim name As String = String.Join("_", "PersonenRolle_" & iPR.ToString, iPers, iRoll)
Dim gehalt As Decimal = 1000 + CDec(iPers * iRoll) / 100
.PersonenRolle.AddPersonenRolleRow(rwPers, rwRoll, name, gehalt)
iPR += 1
Next
Next
For iPers = 2 To 6
For iRoll As Integer = 0 To 3
Dim rwPers As dsPersonenRolle.PersonenRow = .Personen(iPers)
Dim rwRoll As dsPersonenRolle.RolleRow = .Rolle(iRoll)
Dim name As String = String.Join("_", "PersonenRolle_" & iPR.ToString, iPers, iRoll)
Dim gehalt As Decimal = 1000 + CDec(iPers * iRoll) / 100
.PersonenRolle.AddPersonenRolleRow(rwPers, rwRoll, name, gehalt)
iPR += 1
Next
Next
End With
End Sub
Freundliche Grüsse
exc-jdbi
Тэги:
#DataGridView #Binding #Xml-Database #Xml #Database_(Software_Genre)