老师,我的项目是SQL 的。做了一个测试例子,帮我看一下! 测试文件中确实没有什么问题,但在原文件中怎么都不行。
我的项目全部采用窗口类型,窗口中绑定表。
但实际原程序中有如下问题需要咨询一下:
1、在采购单 窗口中 输入数据完毕,不保存退出的话,(该记录号延时为红色)。在后台中应收账款表 的数据就全部都有。
这是 采购单 datacolchanged
Select Case e.DataCol.name
Case "采购编号"
If e.DataCol.Name = "采购编号" AndAlso e.NewValue <> Nothing Then
Dim fdr As DataRow = DataTables("应付账款表").Find("采购编号 = '" & e.NewValue & "'")'在应付账款表里找采购编号.因为是SQL 故在原程序中使用 SQLFind
If fdr Is Nothing Then '如果没有找到
fdr = DataTables("应付账款表").AddNew '向应付账款表添加一行记录
fdr("采购编号") = e.DataRow("采购编号")
fdr("采购日期") = e.DataRow("采购日期")
fdr("采购单位") = e.DataRow("采购单位")
fdr("供应商") = e.DataRow("供应商")'其实这个时候应付账款表供应商列是空,因为采购编号产生的时候供应商还没有产生,一下两列同样是空.
fdr("合计") = e.DataRow("合计")
fdr("到期时间") = e.DataRow("到期时间")
fdr.save '保存添加的行
Else '如果应付账款表中没有找到采购编号,则再次重置采购编号是 以下程序发送作用.
fdr("采购编号") = e.DataRow("采购编号")
fdr("采购日期") = e.DataRow("采购日期")
fdr("采购单位") = e.DataRow("采购单位")
fdr("供应商") = e.DataRow("供应商")
fdr("合计") = e.DataRow("合计")
fdr("到期时间") = e.DataRow("到期时间")
fdr.save
End If
End If
End Select
问题来了,这个时候为什么所有的列都已经添加到 应付账款表 中了? 我认为是应该再次重置 采购编号采把数据列不全啊!(我在任何地方没有做重置 采购编号 列的动作)
2、保存采购单后,在应付账款表中能显示该采购记录。 但 如果从采购单窗口中删除 记录 的话。 不保存采购单窗口,后台的应付账款表重新添加了一条该记录。 保存采购单窗口后,应付账款表中只是删除了刚才添加(删除时自动添加到应付账款表中的)的记录,也就是说有两条记录,只删除了一条。最终的结果是:采购单中删除记录,应付账款表中的记录没有删除,只是把 合计 列 清零了。记录还在,数据不全。
采购单 datarowdeleting
Dim dr As DataRow = DataTables("应付账款表").SQLFind("采购编号 = '" & e.DataRow("采购编号") & "'")
If dr IsNot Nothing Then
dr.Delete()
dr.save
End If
老师请帮我分析一下!