如果是不改变表结构的情况,你的Datacolchanged事件,必须这样写
Dim dr As DataRow =e.DataRow
Dim dt_score As DataTable=DataTables("tblscore")
Dim dt_scorepmjf As DataTable = DataTables("tblscorepmsj")
If e.DataCol.name="科目" And e.DataRow.IsNull("科目")=False Then
Dim mdr As DataRow = Nothing
Dim max As Integer = 0
For Each tdr As DataRow In dt_scorepmjf.Select("[考试期数] = '" & e.DataRow("考试期数") & "' And [年级] = '" & e.DataRow("年级") & "'And [班别] = '" & e.DataRow("班别") & "' And " & dr("科目") & " like '↑%'")
Dim s = tdr(dr("科目"))
s = s.SubString(1,s.IndexOf("(")-1)
If mdr Is Nothing Then
mdr = tdr
Else
If val(s) > max Then
max = val(s)
mdr = tdr
End If
End If
Next
e.DataRow("高幅度")=max
e.DataRow("高姓名") = mdr("姓名")
e.DataRow("最高分")=dt_score.Compute("max(" & dr("科目") & ")","[考试期数] = '" & e.DataRow("考试期数") & "' And [年级] = '" & e.DataRow("年级") & "'And [班别] = '" & e.DataRow("班别") & "' and 学号 = '" & mdr("学号") & "'")
mdr = Nothing
max = 0
For Each tdr As DataRow In dt_scorepmjf.Select("[考试期数] = '" & e.DataRow("考试期数") & "' And [年级] = '" & e.DataRow("年级") & "'And [班别] = '" & e.DataRow("班别") & "' And " & dr("科目") & " like '↓%'")
Dim s = tdr(dr("科目"))
s = s.SubString(1,s.IndexOf("(")-1)
If mdr Is Nothing Then
mdr = tdr
Else
If val(s) > max Then
max = val(s)
mdr = tdr
End If
End If
Next
e.DataRow("低幅度")=max
e.DataRow("低姓名") = mdr("姓名")
e.DataRow("最低分")=dt_score.Compute("max(" & dr("科目") & ")","[考试期数] = '" & e.DataRow("考试期数") & "' And [年级] = '" & e.DataRow("年级") & "'And [班别] = '" & e.DataRow("班别") & "' and 学号 = '" & mdr("学号") & "'")
End If