webForumDet fria alternativet

Jämföra värden i datatable

.NET

1 svar · 243 visningar · startad av andreas_lindh

Medlem sedan jan. 20011 140 inlägg
Frågan#1

Jag har en datatable som jag fyller med en hockeytabell.

Jag gör så här för att kolla om det finns två lag med samma poäng, samma målskillnad och samma antal gjorda mål.

Dim i, j As Integer
        For i = 0 To dt.Rows.Count - 1
            For j = i + 1 To dt.Rows.Count - 1
                If dt.Rows(i).Item(7) = dt.Rows(j).Item(7) And dt.Rows(i).Item(10) = dt.Rows(j).Item(10) And dt.Rows(i).Item(8) = dt.Rows(j).Item(8) Then

                End If
            Next
        Next

Nu skulle jag vilja göra så att om det finns två lag som har samma poäng, samma målskillnad och samma antal gjorda mål så ska segraren i mötet mellan de båda lagen hämtas och segraren i den matchen ska komma före i tabellen.

Någon som har något förslag på hur jag kan göra det?

Medlem sedan jan. 20011 140 inlägg
#2

Nu har jag löst det :)

    Private Sub bindgrid()
        Dim grupp As Integer = 70
        Dim objBusinessl As New AllTeamsBusinessL()
        Dim myDatatable As New DataTable("tabell")
        Dim dt As DataTable = objBusinessl.getTabell1(grupp)
        Dim myDataColumn As DataColumn
        Dim myDataRow As DataRow
        Dim ds As DataSet
        myDataColumn = New DataColumn()
        myDataColumn.ColumnName = "pos"
        dt.Columns.Add(myDataColumn)
        Dim i, j As Integer
        For i = 0 To dt.Rows.Count - 1
            For j = i + 1 To dt.Rows.Count - 1
                If dt.Rows(i).Item(7) = dt.Rows(j).Item(7) And dt.Rows(i).Item(10) = dt.Rows(j).Item(10) And dt.Rows(i).Item(8) = dt.Rows(j).Item(8) Then
                    Dim _res As String = getGame(dt.Rows(i).Item(0), dt.Rows(j).Item(0))
                    If _res = "a" Then
                        myDataRow = dt.Rows(i)
                        myDataRow("pos") = "5"
                        myDataRow = dt.Rows(j)
                        myDataRow("pos") = "2"
                    ElseIf _res = "b" Then
                        myDataRow = dt.Rows(i)
                        myDataRow("pos") = "2"
                        myDataRow = dt.Rows(j)
                        myDataRow("pos") = "5"
                    ElseIf _res = "c" Then
                        myDataRow = dt.Rows(i)
                        myDataRow("pos") = "0"
                        myDataRow = dt.Rows(j)
                        myDataRow("pos") = "0"
                    End If
                End If
            Next
        Next

        Dim dv As New DataView(dt)
        dv.Sort = "poang Desc,plusminus Desc,plus Desc,pos Desc"
        dgtabell.DataSource = dv
        dgtabell.DataBind()
    End Sub

    Private Function getGame(ByVal _lagIDA As Integer, ByVal _lagIDB As Integer)
        Dim objBusinessl As New AllTeamsBusinessL()
        Dim _resultat As String = objBusinessl.getgameResultat(_lagIDA, _lagIDB)
        Dim _res() As String = Split(_resultat, ",")
        If _res(0) > _res(1) Then
            Return "a"
        ElseIf _res(0) < _res(1) Then
            Return "b"
        Else
            Return "c"
        End If
    End Function
262 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)