以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 还是跨表删除问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=90089) |
||||
-- 作者:yzyend -- 发布时间:2016/9/5 13:28:00 -- 还是跨表删除问题
老师,我的项目是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 老师请帮我分析一下! |
||||
-- 作者:有点蓝 -- 发布时间:2016/9/5 15:28:00 -- 1、示例看不出什么问题 2、数据库有没有触发器之类的 3、把这和2个表有关的其它事件全部注释试试
|