Foxtable(狐表)用户栏目专家坐堂 → 动态卸载表后数据记录丢失问题已经解决,感谢各位关注,也请多多留意注意事项!


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

主题:动态卸载表后数据记录丢失问题已经解决,感谢各位关注,也请多多留意注意事项!

帅哥哟,离线,有人找我吗?
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/10/13 11:35:00 [显示全部帖子]

将卸载表的按钮改为:

 

DataTables("表A").Save()

DataTables.unload("表A")

 

 

这个和加载和卸载没有关系的。

 

另,新增行不存在Load,你要保存新增行的话,应该dr.Save()

[此贴子已经被作者于2013-10-13 11:36:43编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/10/13 12:00:00 [显示全部帖子]

Load是从后台提取数据,新增行不存在后台数据,没有必要Load的,以前也是这样的。

 

不存在频繁DataTables(“xxx”).Save啊?

你可以:dr.Save()

 

例如:

 

MainTable = Tables("表A")
Dim dr As DataRow
For i As Integer = 0 To 10
    dr = DataTables("表A").AddNew()
    dr("第一列") = format(DataTables("表A").DataRows.Count + i,"00000")
    dr.Save()
Next

 

当然如果增加的行很多,这样还不如最后统一保存高效:

 

MainTable = Tables("表A")
Dim dr As DataRow
For i As Integer = 0 To 1000
    dr = DataTables("表A").AddNew()
    dr("第一列") = format(DataTables("表A").DataRows.Count + i,"00000")
Next
DataTables("表A").Sve()


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/10/14 7:58:00 [显示全部帖子]

以下是引用atmetmicoo在2013-10-14 0:18:00的发言:
顶一下程版,每次做一项新操作之前,数据先会用Load刷新判断是否有人在编辑,所以Load是不可不用,我也要关注这个问题了,恐怖

 

前面解释这么多,为什么就不明白呢?

dr.load对于新增行无效,load是从后台加载数据,新增行在后台并不存在,load什么啊?

 

而且从代码的角度来说:

dr.Save()

dr.Load()

 

远远好过:

dr.Load(True)

 

因为前者清晰明了,任何人一看就明白。

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目47.foxdb

[此贴子已经被作者于2013-10-14 8:00:05编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/10/14 17:51:00 [显示全部帖子]

呵呵:

 

1、外部表本来就是默认加载10行的

2、这个是编码逻辑问题,需要老程你自己考虑。

3、dr.load本来就对新增行无效的,一直如此呢,还是SAVE和Load分开吧,不过新增行Load有意义吗?


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/10/14 18:15:00 [显示全部帖子]

好,我搞成load(True)对新增行执行的时候,保存一下,而不是什么都不做


 回到顶部