密码:888888
之前的代码看到添加了一行,但没编号、计算数据全没,我把第2次的代码改为这样,报错
此主题相关图片如下:截图.png
Dim drs2() As List(of DataRow) = DataTables("比赛积分").SQLFind("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "'")
For Each dr2 As DataRow In drs2()
Else If di2 = 2 And dr2 Is Nothing Or drs2.count <= dts.Count Then
For Each drs3() As String In DataTables("比赛积分").SQLGetValues("桌号|编号|姓名","[棋赛名称] = '" & di1 & "'And ([第几轮比赛] = '" & a & "'","积分 Desc")
Dim da As List(Of DataRow) = DataTables("比赛积分").SQLSelect("桌号 =" & drs3(0) & "and 编号 = '" & drs3(1) & "'and 姓名 ='" & drs3(2) & "'")
If drs3.Count> 0
Dim idx1 As Integer = drs3.Count-1
dr2 = DataTables("比赛积分").AddNew()
dr2("棋赛名称") = di1
dr2("第几轮比赛") = di2
dr2("日期") = di3
dr2("编号") = da(idx1)("编号")
dr2("姓名") = da(idx1)("姓名")
dr2("上轮止累计积分") = da(idx1)("积分")
dr2("曾交战对手累计积分") = DataTables("比赛积分").SQLCompute("SUM(积分)","[桌号] = " & da(idx1)("桌号") & "And [编号] <> '" & da(idx1)("编号") & "'and [姓名] <> '" & da(idx1)("姓名") & "'")
da.RemoveAt(idx1)
Dim dts1 As List(of DataRow) = DataTables("基本信息").SQLSelect("[棋赛名称] = '" & di1 & "'And [身份] = '参赛人' And [缺赛轮号] like '%" & di2 & "%'")
If dr2("编号") = dts1("编号") Then
dr2("桌号") = Nothing
Else
dr2("桌号") = math.Ceiling((i2+1) \ 2)
End If
End If
i2 += 1
Next
DataTables("比赛积分").Save()
DataTables("对阵表").DataRows.Clear
Dim drs4 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "'","","上轮止累计积分,曾交战对手累计积分 Desc")
For i As Integer = 0 To drs4.Count - 1 Step 2
If i+1 <= drs4.Count - 1
Dim nr As DataRow = DataTables("对阵表").AddNew()
nr("桌号") = drs4(i)("桌号")
msgbox(nr("桌号"))
nr("红方_编号") = drs4(i)("编号")
nr("红方_姓名") = drs4(i)("姓名")
nr("黑方_编号") = drs4(i+1)("编号")
nr("黑方_姓名") = drs4(i+1)("姓名")
nr("红方_上轮止累计积分") = drs4(i)("上轮止累计积分")
nr("红方_曾交战对手累计积分") = drs4(i)("上轮止累计积分")
nr("黑方_上轮止累计积分") = drs4(i+1)("曾交战对手累计积分")
nr("黑方_曾交战对手累计积分") = drs4(i+1)("曾交战对手累计积分")
End If
Next
Else If di2 > 2 And dr2 Is Nothing Or drs2.count <= dts.Count Then
For Each drs5() As String In DataTables("比赛积分").SQLGetValues("桌号|编号|姓名","[棋赛名称] = '" & di1 & "'And ([第几轮比赛] = '" & a & "'","上轮止累计积分,曾交战对手累计积分 Desc")
Dim da1 As List(Of DataRow) = DataTables("比赛积分").SQLSelect("桌号 =" & drs5(0) & "and 编号 ='" & drs5(1) & "'and 姓名 ='" & drs5(2) & "'")
If drs5.Count> 0
Dim idx2 As Integer = drs5.Count-1
dr2 = DataTables("比赛积分").AddNew()
dr2("棋赛名称") = di1
dr2("第几轮比赛") = di2
dr2("日期") = di3
dr2("编号") = da1(idx2)("编号")
dr2("姓名") = da1(idx2)("姓名")
dr2("上轮止累计积分") = da1(idx2)("上轮止累计积分") + da1(idx2)("积分")
dr2("曾交战对手累计积分") = da1(idx2)("曾交战对手累计积分") + DataTables("比赛积分").SQLCompute("SUM(积分)","[桌号] = " & da1(idx2)("桌号") & "And [编号] <> '" & da1(idx2)("编号") & "'and [姓名] <> '" & da1(idx2)("姓名") & "'")
da1.RemoveAt(idx2)
Dim dts2 As List(of DataRow) = DataTables("基本信息").SQLSelect("[棋赛名称] = '" & di1 & "'And [身份] = '参赛人' And [缺赛轮号] like'" & di2 & "'")
If dr2("编号") = dts2("编号") Then
dr2("桌号") = Nothing
Else
dr2("桌号") = math.Ceiling((i2+1) \ 2)
End If
End If
i2 += 1
Next
DataTables("比赛积分").Save()
DataTables("对阵表").DataRows.Clear
Dim drs6 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "'And [桌号] Is Not Null","","第几轮比赛,上轮止累计积分,曾交战对手累计积分 Desc")
For i As Integer = 0 To drs6.Count - 1 Step 2
If i+1 <= drs6.Count - 1
Dim nr As DataRow = DataTables("对阵表").AddNew()
nr("桌号") = drs6(i)("桌号")
nr("红方_编号") = drs6(i)("编号")
nr("红方_姓名") = drs6(i)("姓名")
nr("黑方_编号") = drs6(i+1)("编号")
nr("黑方_姓名") = drs6(i+1)("姓名")
nr("红方_上轮止累计积分") = drs6(i)("上轮止累计积分")
nr("红方_曾交战对手累计积分") = drs6(i)("上轮止累计积分")
nr("黑方_上轮止累计积分") = drs6(i+1)("曾交战对手累计积分")
nr("黑方_曾交战对手累计积分") = drs6(i+1)("曾交战对手累计积分")
End If
Next
DataTables("比赛积分").SQLUpdate(drs6)
Next
End If