以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何保存控件中修改的数据  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=178332)

--  作者:采菊东篱下
--  发布时间:2022/6/30 10:36:00
--  如何保存控件中修改的数据
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb

    收费标准表我设为不允许直接修改,数据通过收费定价窗口录入,如果我想修改已录入数据,如何在原有数据基础上保存而不是新添一行录入。
[此贴子已经被作者于2022/6/30 10:44:40编辑过]

--  作者:有点蓝
--  发布时间:2022/6/30 10:51:00
--  
查询和编辑控件不要混用一个。一个控件要么作为查询用,要么作为录入用,不要共用。
--  作者:采菊东篱下
--  发布时间:2022/6/30 10:58:00
--  
查询就是定位到查找的行,没有录入,保存按钮才是录入,没有共同,完全分开的,只是在按钮上录入数据,添加、删除还可以,一旦想修改就不行了,只能删除原来的数据,重新录入,能不能直接修改?
--  作者:有点蓝
--  发布时间:2022/6/30 11:05:00
--  
就是共用的。查找按钮里DateTimePicker1作为查询条件用,保存按钮里DateTimePicker1又用来给日期列赋值。这种就叫做共用
--  作者:采菊东篱下
--  发布时间:2022/6/30 11:15:00
--  
双条件查找、录入的,日期是必需条件,查找,录入是分开按钮,完全不影响各自的查找、录入,我用数据测试过这两个按钮都没问题,现在的问题是如何避免修改数据,原来的数据仍在,又新添一行。
--  作者:采菊东篱下
--  发布时间:2022/6/30 11:19:00
--  
控件上的日期是手动选择的,表上的日期是保存控件上的数据。
--  作者:有点蓝
--  发布时间:2022/6/30 11:40:00
--  
2个按钮分别使用没有问题,放到同一个窗口,使用同一套输入控件肯定就有问题,最大的问题就是导致了“新添一行”
--  作者:采菊东篱下
--  发布时间:2022/6/30 11:45:00
--  
不明白。
--  作者:有点蓝
--  发布时间:2022/6/30 11:54:00
--  
使用2套控件,一套专门用来做查询条件。另外一套用来编辑数据
--  作者:采菊东篱下
--  发布时间:2022/6/30 13:49:00
--  
保存按钮第一段代码改为这样报错:
Dim rq As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker1")
Dim d As String = rq.Value
If d = "" Then
    messagebox.show("请选择实施日期")
    Return
End If 
If d IsNot Nothing And e.Form.Controls("TextBox1").Value IsNot Nothing Then
    Dim dr As DataRow = DataTables("收费标准").Find("[实施日期] = #" & CDate(d) & "#")
    If dr IsNot Nothing And dr("月租收费") = CDbl(e.Form.Controls("TextBox1").Value) Then
        messagebox.show("数据已存在,请勿重复操作。")
        Return
    ElseIf dr IsNot Nothing And dr("月租收费") <> CDbl(e.Form.Controls("TextBox1").Value) Then 
        dr("月租收费") = CDbl(e.Form.Controls("TextBox1").Value)
        dr.Save()
    ElseIf dr Is Nothing Then
        Dim da As DataRow = DataTables("收费标准").AddNew
        da("实施日期") = CDate(d)
        da("月租收费") = CDbl(e.Form.Controls("TextBox1").Value)
        da.Save()
    End If
End If


.NET Framework 版本:4.0.30319.18063
Foxtable 版本:2022.5.29.2
错误所在事件:窗口,收费定价,Button1,Click
详细错误信息:
Object reference not set to an instance of an object.