以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]为何改不过来,代码应该没写错吧 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=149571) |
-- 作者:职业技术学校 -- 发布时间:2020/5/6 15:34:00 -- [求助]为何改不过来,代码应该没写错吧 With Tables("基础表") If .Current IsNot Nothing Then If MessageBox.Show("是否删除当前行?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes Then If cstr(.Current("状态")).Length > 0 Then MessageBox.Show("已经有关联的单据,禁止删除!") Else \'\'\'\'\'\'-------查找上道工序基础表,状态为当前表的编号,将状态设置""空 Dim tb_jgdh As WinForm.TextBox = e.Form.Controls("TextBox1") Dim dr As DataRow = DataTables("基础表").SQLFind("[状态] = \'" & tb_jgdh.Text.Trim() & "\'") If dr IsNot Nothing Then dr("状态") = Nothing dr.Save() End If .Current.Delete End If End If End If End With 这是一个删除操作, 如果一行数据删除,去更新另一行数据的状态列 我这段代码有什么问题吗,为何dr("状态")状态就是改不过来呢 ,我用msg 调试,dr("状态")已经是空,表里却没变,搞了一下午了,整不明白!
[此贴子已经被作者于2020/5/6 15:38:14编辑过]
|
-- 作者:chen37280600 -- 发布时间:2020/5/6 15:36:00 -- 大哥,你的Dr是从SQLFind里找出来的独立玩意,你修改后,也是直接改数据库的。跟你当前展示的行无关。你要重新加载才能看到新数据 |
-- 作者:职业技术学校 -- 发布时间:2020/5/6 16:50:00 -- 重新加载也是没变的 ,select * fro m 也没变 [此贴子已经被作者于2020/5/6 16:52:23编辑过]
|
-- 作者:职业技术学校 -- 发布时间:2020/5/6 17:04:00 -- 示例四 Dim dr As DataRow SQLFind每次只能找出一条符合条件的行,如果要同时找出所有符合条件的行,可以使用SQLSelect方法。
本页地址:http://www.foxtable.com/webhelp/topics/2911.htm
我用的是这个 示列 |
-- 作者:有点蓝 -- 发布时间:2020/5/6 17:16:00 -- 重新加载数据:http://www.foxtable.com/webhelp/topics/1928.htm DataTables("订单").loadfilter = "" DataTables("订单").load
[此贴子已经被作者于2020/5/6 17:16:02编辑过]
|
-- 作者:职业技术学校 -- 发布时间:2020/5/6 19:22:00 -- 难道执行更改操作要在重新加载以后才能提交到数据库里面吗?看来我还是没懂狐表! |
-- 作者:有点蓝 -- 发布时间:2020/5/7 8:53:00 -- sqlfind这种操作保存后是直接更新数据库的,但是不会更新界面,界面不会发生变化,所以界面需要重新从数据库里加载已经改动的数据,界面才会变化。 find是直接改界面,保存后才更新数据库。 sqlfind不会更改界面,保存后只更新数据库。
|