Anbindung Datagridview an unterschiedlicher Dataviews

  • VB.NET
  • .NET (FX) 1.0–2.0

    Anbindung Datagridview an unterschiedlicher Dataviews

    Hallo

    ich arbeite mit Visual Studio- VB.net und haben folgendes Problem:


    Für eine Ergebnis Darstellung möchte ich 3 Formulare anzeigen in denen je ein Datagridview Element integriert ist.

    In Formular 1 sollen die TopTen stehen
    in Formular 2 sollen die Plätze ab 11 bis n stehen


    Da alle 2 Datagridview Elemente vom Format her exakt gleich sind, möchte ich nur einmal einen Code aufrufen um sie zu editieren. Dann - in Abhängigkeit des jeweiligen Formulars - 3 verschiede SQL Statements ausführen und dann das Dataview entsprechend füllen. Danach dann eine Anbindung an das jeweilige Datagridview.

    Nun könnte ich hingehen, zweimal für jedes Datagridview die Formatierung und die Befüllung des Dataviews. Diese möchte ich nicht und hoffe dass ich z. B. das Dataview an das jeweilige Form übergeben kann.

    Mit untenaufgeführten code, füllte er beim Timer beide Forms mit den gleichen DAten und formartiert wechselseitig nur ein Datagridview.



    Vielen Dank im Voraus für Eure Hilfe

    MFG Driwet




    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    'aktualisieren()

    Formname = "DressurErgebnisTopTen"
    AnzeigeDressurTopTen(Me.DataGridView1, Formname)


    End Sub

    Public Sub AnzeigeDressurTopTen(ByVal dgv As DataGridView, ByVal fmn As String)

    Dim sqlstr As String

    If fmn = "ErgebnisDressurTopTen" Then
    sqlstr = sqlstrdreerg
    Else
    sqlstr = sqlstrdreergkopfnr
    End If


    Dim dawerg As New SqlDataAdapter(sqlstr, con)
    Dim ra As Integer = 0, rapu As Integer = 0, ergpu As Decimal, Marker As String = "", za As Integer = 0

    'MsgBox(fmn)

    dtwerg.Clear()
    dawerg.Fill(dtwerg)


    For Each dtrw As DataRow In dtwerg.Rows
    dtrw("dre_ergebnisstring") = Trim(dtrw("dre_ergebnisstring"))
    dtrw("dre_prozent") = Trim(dtrw("dre_prozent"))
    Next


    If dtwerg.Columns("Team") IsNot Nothing Then
    dtwerg.Columns.Remove("Team")
    dtwerg.Columns.Remove("dre_Rang")
    dtwerg.Columns.Remove("Diff")
    dtwerg.Columns.Remove("dre_Prozent_Anz")
    dtwerg.Columns.Remove("dre1_Prozent_Rang")
    dtwerg.Columns.Remove("dre2_Prozent_Rang")
    dtwerg.Columns.Remove("dre3_Prozent_Rang")
    dtwerg.Columns.Add("Team", GetType(Image))
    dtwerg.Columns.Add("dre_Rang", GetType(String))
    dtwerg.Columns.Add("Diff", GetType(String))
    dtwerg.Columns.Add("dre_Prozent_Anz", GetType(String))
    dtwerg.Columns.Add("dre1_Prozent_Rang", GetType(String))
    dtwerg.Columns.Add("dre2_Prozent_Rang", GetType(String))
    dtwerg.Columns.Add("dre3_Prozent_Rang", GetType(String))
    Else
    dtwerg.Columns.Add("Team", GetType(Image))
    dtwerg.Columns.Add("dre_Rang", GetType(String))
    dtwerg.Columns.Add("Diff", GetType(String))
    dtwerg.Columns.Add("dre_Prozent_Anz", GetType(String))
    dtwerg.Columns.Add("dre1_Prozent_Rang", GetType(String))
    dtwerg.Columns.Add("dre2_Prozent_Rang", GetType(String))
    dtwerg.Columns.Add("dre3_Prozent_Rang", GetType(String))
    End If


    For I As Integer = 1 To anzahl_richter + 1

    If I = 1 Then 'Hier die gesamt Summe
    Spalte1 = "dre_prozent"
    spalte2 = "dre_rang"
    sort = "Dre_Prozent desc"

    ElseIf I = 2 Then ' HIer Richter1
    Spalte1 = "dre1_prozent"
    spalte2 = "dre1_Prozent_rang"
    sort = "Dre1_Prozent desc"
    ElseIf I = 3 Then ' Hier Richter 2
    Spalte1 = "dre2_prozent"
    spalte2 = "dre2_Prozent_rang"
    sort = "Dre2_Prozent desc"


    ElseIf I = 4 Then 'Hier Richgter 3
    Spalte1 = "dre3_prozent"
    spalte2 = "dre3_Prozent_rang"
    sort = "Dre3_Prozent desc"
    End If

    RangierungDre(dtwerg, Spalte1, spalte2, sort) 'sheht in Formatierungen
    Next

    Dim dvwerg As New DataView(dtwerg)
    dvwerg.Sort = "dre_Prozent desc"


    For Each rw As DataRow In dtwerg.Rows

    If rw("feinat") Is DBNull.Value Then
    rw("feinat") = "GER"
    End If
    Var = rw("feinat").ToString
    Var = flaggen + "3" + Var + ".jpg"
    Dim Ico As Image = Image.FromFile(Var)
    ' Ico = Image.FromFile(rei)
    rw("Team") = Ico


    Next

    dgv.DataSource = dvwerg
    dgv.Width *= 8
    dgv.Dock = DockStyle.Fill
    dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
    dgv.DefaultCellStyle.WrapMode = DataGridViewTriState.True
    dgv.ColumnHeadersHeight = 50
    dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing



    'dgv.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders
    'dgv.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedHeaders



    dgv.Columns.Remove("dre1_prozent")
    dgv.Columns.Remove("dre2_prozent")
    dgv.Columns.Remove("dre3_prozent")
    dgv.Columns.Remove("sdlfnr")
    dgv.Columns.Remove("dre_ergebnis")
    dgv.Columns.Remove("dre_prozent")
    dgv.Columns.Remove("vname")




    Dim di As Integer = 0

    'Rang
    dgv.Columns("dre_Rang").HeaderText = "Rank:"
    dgv.Columns("dre_Rang").MinimumWidth = "10"
    dgv.Columns("dre_Rang").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    dgv.Columns("dre_Rang").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
    dgv.Columns("Dre_Rang").DisplayIndex = di
    di = di + 1
    'Flagge
    dgv.Columns("Team").MinimumWidth = "20"
    dgv.Columns("Team").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    dgv.Columns("Team").DisplayIndex = di
    di = di + 1
    'FeiNat
    dgv.Columns("Feinat").HeaderText = "Nat."
    dgv.Columns("Feinat").MinimumWidth = 20
    dgv.Columns("Feinat").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    dgv.Columns("FeiNAt").DisplayIndex = di
    di = di + 1

    'Kopfnr
    dgv.Columns("kopfnr").HeaderText = "No:"
    dgv.Columns("kopfnr").Width = "10"
    dgv.Columns("kopfnr").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    dgv.Columns("kopfnr").DisplayIndex = di
    di = di + 1
    'Pferd
    dgv.Columns("pfnam").HeaderText = "Horse:"
    dgv.Columns("pfnam").MinimumWidth = "10"
    dgv.Columns("Pfnam").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    dgv.Columns("Pfnam").DisplayIndex = di
    di = di + 1
    'Reiter
    dgv.Columns("Name").HeaderText = "Rider:"
    dgv.Columns("Name").MinimumWidth = "10"
    dgv.Columns("Name").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    dgv.Columns("Name").DisplayIndex = di
    di = di + 1

    'Verei
    'dgv.Columns("Vname").HeaderText = "Club"
    'dgv.Columns("Vname").MinimumWidth = 10
    'dgv.Columns("Vname").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    'dgv.Columns("Vname").DisplayIndex = di
    'di = di + 1
    'der_summe

    dgv.Columns("Dre_summe").HeaderText = "Good" + vbCrLf + "Marks"
    dgv.Columns("Dre_summe").MinimumWidth = 10
    dgv.Columns("Dre_summe").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
    dgv.Columns("Dre_summe").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
    dgv.Columns("Dre_summe").DisplayIndex = di
    di = di + 1
    'DreProzent
    dgv.Columns("Dre_prozent_anz").HeaderText = "Average" + vbCrLf + "%"
    dgv.Columns("Dre_prozent_anz").MinimumWidth = 10
    dgv.Columns("Dre_Prozent_anz").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
    dgv.Columns("Dre_Prozent_anz").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
    dgv.Columns("Dre_prozent_anz").DisplayIndex = di
    di = di + 1
    'Dre1_prozent_rang
    dgv.Columns("dre1_prozent_Rang").HeaderText = "Ju. at: " + pos_richter1 + vbCrLf + richter1
    dgv.Columns("dre1_prozent_Rang").MinimumWidth = 10
    dgv.Columns("dre1_prozent_Rang").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    dgv.Columns("dre1_Prozent_Rang").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
    dgv.Columns("dre1_prozent_Rang").DisplayIndex = di
    di = di + 1
    'Dre2_prozent_Rang
    dgv.Columns("dre2_prozent_Rang").HeaderText = "Ju. at: " + pos_richter2 + vbCrLf + richter2
    dgv.Columns("dre2_prozent_Rang").MinimumWidth = 10
    dgv.Columns("dre2_prozent_Rang").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    dgv.Columns("dre2_Prozent_Rang").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
    dgv.Columns("dre2_prozent_Rang").DisplayIndex = di
    di = di + 1


    If anzahl_richter = 2 Then
    dgv.Columns.Remove("dre3_prozent_Rang")

    Else
    'Dre3_prozent_Rang
    dgv.Columns("dre3_prozent_Rang").HeaderText = "Ju. at: " + pos_richter3 + vbCrLf + richter3
    dgv.Columns("dre3_prozent_Rang").MinimumWidth = 10
    dgv.Columns("dre3_prozent_Rang").AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells
    dgv.Columns("dre3_Prozent_Rang").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
    dgv.Columns("dre3_prozent_Rang").DisplayIndex = di
    di = di + 1
    End If

    'Punkte
    dgv.Columns("dre_ergebnisstring").HeaderText = "Points:"
    dgv.Columns("dre_ergebnisstring").MinimumWidth = 10
    dgv.Columns("dre_ergebnisstring").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
    dgv.Columns("dre_ergebnisstring").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
    dgv.Columns("dre_ergebnisstring").DisplayIndex = di
    di = di + 1
    'Diff
    dgv.Columns("Diff").HeaderText = "Diff"
    dgv.Columns("Diff").MinimumWidth = 10
    dgv.Columns("Diff").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
    dgv.Columns("Diff").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
    dgv.Columns("Diff").DisplayIndex = di



    For i As Integer = 0 To dgv.Rows.Count - 1
    Dim ic As DataGridViewImageCell = CType(dgv.Rows(i).Cells("Team"), DataGridViewImageCell)
    ic.ImageLayout = DataGridViewImageCellLayout.Zoom
    Next



    End Sub