Foxtable(狐表)用户栏目专家坐堂 → [求助]为何改不过来,代码应该没写错吧


  共有2202人关注过本帖树形打印复制链接

主题:[求助]为何改不过来,代码应该没写错吧

帅哥哟,离线,有人找我吗?
职业技术学校
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:186 积分:1819 威望:0 精华:0 注册:2019/5/13 12:37:00
[求助]为何改不过来,代码应该没写错吧  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1265 积分:7838 威望:0 精华:4 注册:2017/12/31 14:53:00
  发帖心情 Post By:2020/5/6 15:36:00 [只看该作者]

大哥,你的Dr是从SQLFind里找出来的独立玩意,你修改后,也是直接改数据库的。跟你当前展示的行无关。你要重新加载才能看到新数据

 回到顶部
帅哥哟,离线,有人找我吗?
职业技术学校
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:186 积分:1819 威望:0 精华:0 注册:2019/5/13 12:37:00
  发帖心情 Post By:2020/5/6 16:50:00 [只看该作者]

重新加载也是没变的 ,select * fro m 也没变

[此贴子已经被作者于2020/5/6 16:52:23编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
职业技术学校
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:186 积分:1819 威望:0 精华:0 注册:2019/5/13 12:37:00
  发帖心情 Post By:2020/5/6 17:04:00 [只看该作者]

示例四

可以修改并保存SQLFind查找出来的行,例如:

Dim dr As DataRow
dr
= DataTables("订单").SQLFind("数量 > 1000","日期 Desc")
If
dr IsNot Nothing Then '如果找到符合条件的行
    dr("折扣") = 0.14
    dr.Save()

End
If

SQLFind每次只能找出一条符合条件的行,如果要同时找出所有符合条件的行,可以使用SQLSelect方法。


本页地址:http://www.foxtable.com/webhelp/topics/2911.htm

 

我用的是这个 示列


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/6 17:16:00 [只看该作者]

重新加载数据:http://www.foxtable.com/webhelp/topics/1928.htm

DataTables("订单").loadfilter = ""
DataTables("订单").load
[此贴子已经被作者于2020/5/6 17:16:02编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
职业技术学校
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:186 积分:1819 威望:0 精华:0 注册:2019/5/13 12:37:00
  发帖心情 Post By:2020/5/6 19:22:00 [只看该作者]

难道执行更改操作要在重新加载以后才能提交到数据库里面吗?看来我还是没懂狐表!

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/5/7 8:53:00 [只看该作者]

sqlfind这种操作保存后是直接更新数据库的,但是不会更新界面,界面不会发生变化,所以界面需要重新从数据库里加载已经改动的数据,界面才会变化。

find是直接改界面,保存后才更新数据库。
sqlfind不会更改界面,保存后只更新数据库。

 回到顶部