【发布时间】:2021-03-08 11:40:40
【问题描述】:
下面的代码有问题,在dt.ImportRow(cr) 行出现“对象未设置为对象的实例”错误。
Dim DataGrid As DataTable = Me.DataSet1.MyGrid()
For i As Integer = DataGrid.Rows.Count - 1 To -0 Step -1
Dim dr As DataRow = DataGrid.Rows.Item(i)
Dim new_value1 = 0
Dim new_value2 = 0
Dim new_value3 = 0
Dim new_value4 = 0
Dim new_value5 = 0
If CheckItem(dr("WH"), dr("PC")) Then
Dim dt As DataTable
For Each cr As DataRow In Me.DataSet1.MyGrid()
If cr("parent") = dr("WH") + dr("PC") And cr("lev") = dr("lev") + 1 Then
dt.ImportRow(cr)
End If
Next
dt.AcceptChanges()
RemoveDuplicateRows(dt)
For Each dr1 As DataRow In dt.Rows
new_value1 = new_value1 + dr1("new_value1")
new_value2 = new_value2 + dr1("new_value2")
new_value3 = new_value3 + dr1("new_value3")
new_value4 = new_value4 + dr1("new_value4")
new_value5 = new_value5 + dr1("new_value1") + dr1("new_value2") + dr1("new_value3") + dr1("new_value4")
Next
dr("new_value1 ") = Math.Round(new_value1 , 4)
dr("new_value2 ") = Math.Round(new_value2 , 4)
dr("new_value3 ") = Math.Round(new_value3 , 4)
dr("new_value4 ") = Math.Round(new_value4 , 4)
dr("new_value5 ") = Math.Round(new_value5 , 4)
End If
Next
我要做的是在dt 中填充可以在Me.DataSet1.MyGrid() 中重复的行,这样我就可以执行RemoveDuplicateRows() 方法,以便只显示不同的行,然后将值从他们。问题是我有重复的值,当我将值相加时,它会重复结果,例如我期望 4 我得到 8。
为什么我无法将Rows.Add(cr) 或ImportRow(cr) 写入dt 数据表?
【问题讨论】: