以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- SQL 数据丢失 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=88365) |
||||
-- 作者:bressernon -- 发布时间:2016/8/1 16:04:00 -- SQL 数据丢失 使用狐表录入数据,保存后重新打开程序,产生有部分数据丢失。 没有多人同时编辑这个表格,使用外部SQL数据库。 有些是日期丢失,有些是其他数据丢失,没有出现整行数据丢失的情况。 发生的频率不定期,有时候几天没有,有时候一天出现好几条。 具体情况请见附件,谢谢了。 |
||||
-- 作者:大红袍 -- 发布时间:2016/8/1 18:38:00 -- 数据不会无缘无故丢失。只有你修改成对应的单元格,保存了,才会出现丢失的情况。 |
||||
-- 作者:bressernon -- 发布时间:2016/8/1 19:26:00 --
附件是数据结构。 从源代码中可以看到,如果没有输入“加工日期”,是没有办法输入“零件项号”。 但是保存重新打开以后,发现“零件项号”是有的,但是“加工日期”没有了。 对于”加工日期“列,在输入“零件项号“以后无法更改的。 Case "加工日期" If e.DataRow.IsNull("零件项号") =
False Then MessageBox.Show("请删除零件项号后再更改",
"提示") e.Cancel = True Case "零件项号"
If e.DataRow.IsNull("生产批号") = False Then
MessageBox.Show("已经存在生产批号和卡片序号,无法更改项号", "提示")
e.Cancel = True
Else If e.NewValue <> Nothing Then
If e.DataRow.IsNull("加工日期") = True Then MessageBox.Show("请先填写日期", "提示") e.Cancel = True
Else Dim dr As DataRow dr = DataTables("轴类零件数据表").Find("[零件项号] = \'" &
e.NewValue & "\' And [当前在产] = True") If dr IsNot Nothing Then Dim tbp As New
DropTreeBuilder tbp.SourceTable =
DataTables("轴类零件生产汇总表") \'指定目录树表 tbp.TreeCols = "生产批号" \'指定用于生成目录树的列 tbp.SourceCols = "生产批号" \'指定数据来源列 tbp.ReceiveCols = "生产批号" \'指定数据接收列 tbp.TreeFilter = "[生产中] = True And "
& "[零件项号] =
\'" & e.NewValue & "\'" Tables("轴类生产点检记录").Cols("生产批号").DropTree =
tbp.Build() Else MessageBox.Show("输入的零件项号有误,请检查该零件是否当前在产", "提示") e.Cancel = True End If
End If
Else If e.NewValue Is Nothing Then
Tables("轴类生产点检记录").Cols("生产批号").DropTree = Nothing End If |
||||
-- 作者:Hyphen -- 发布时间:2016/8/2 9:38:00 -- 代码看不出问题,可能是多个事件互相影响的原因 |
||||
-- 作者:bressernon -- 发布时间:2016/8/2 11:06:00 -- 想问一下,一般是什么情况下会发生这种问题。 另外对于SQL数据的处理有没有特别需要注意的地方? 谢谢 |
||||
-- 作者:Hyphen -- 发布时间:2016/8/2 11:10:00 -- 就是多个事件互相影响的时候。 加载到项目,处理方法都一样的,没有什么特别的
|
||||
-- 作者:大红袍 -- 发布时间:2016/8/2 18:35:00 -- 逻辑上,好像是没有问题。
也有一种可能,是网络的问题,导致保存的时候,一些数据无法保存进去,数据就丢失了。网络不稳定的时候,会有此问题。 |