有两个表:委外表和委外明细,委外明细是根据委外表的内容按档案编号分割表示,代码如下:
Select Case e.DataCol.Name
Case "档案编号", "序号"
e.DataRow("颜色") = StrToNarrow(e.DataRow("颜色"))
Dim ys() As Char = {","}
Dim xh() As Char = {",", ";"}
Dim ary_ys() As String = e.DataRow("颜色").Split(ys)
Dim ary_xh() As String = e.DataRow("序号").Split(xh)
Dim ary_xh1() As String = e.DataRow("序号").Split(",")
DataTables("委外明细").DeleteFor("档案编号 = '" & e.DataRow("档案编号") & "'")
For i As Integer = 0 To ary_xh1.Length - 1
Dim ary_xh2() As String = ary_xh1(i).Split(";")
For j As Integer = 0 To ary_xh2.Length - 1
Dim dr As DataRow = DataTables("委外明细").AddNew
dr("档案编号") = e.DataRow("档案编号")
dr("颜色") = ary_ys(i)
dr("序号") = ary_xh2(j)
Next
Next
End Select
现在的问题是,上面的红色代码保证了委外明细的内容可以更新,但是这种更新方法是把委外明细相同档案编号的行全部删除再重新添加,当委外明细的其它列写有内容时,这种更新方法就会产生矛盾,有没有更好的更新方法呢,也就是说更新时只替换掉颜色或序号不相同的行

此主题相关图片如下:111.jpg


此主题相关图片如下:222.jpg
[此贴子已经被作者于2012-11-26 19:34:14编辑过]