以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]请教程版关于自动更新表结构 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=67358) |
||||
-- 作者:chnfo -- 发布时间:2015/4/22 21:09:00 -- [求助]请教程版关于自动更新表结构 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=42378&replyID=&skin=1 这是程版的自动更新表结构的贴子。 我按照程版的方法试了好多次,总是失败,程版能再费个心做个实例不。那个例子只有一个txt文件,我也查不出来原因在哪里。
在这个例子中,我没有使用自定义函数,做了一个窗口,里面有一个按钮。 这一段 Dim uptext As String = ProjectPath & "\\Attachments\\addtable.txt" If FileSys.FileExists(uptext) = True \'判断addtable.txt文件是否存在 Dim s As String = FileSys.ReadAllText(uptext ,Encoding.Default) \'读取该文本文件的内容 s = s.Replace(chr(10),"").Replace(chr(13),";").Replace(chr(-23636),",") \'支持英文分号和回车分隔多表,支持中英文逗号分割字符列属性和指定长度,以避免手误 Dim Values(),Value1s(),Value2s() As String \'定义字符型数组用于存储多表分割字符串?表名称?列名称和列属性 Values = s.split(";") \'分割多行内容,将分割的内容添加到数组 \'-----------------------------------------------以下代码创建表 For Index As Integer = 0 To Values.Length - 1 \'循环遍历数组 Value1s = Values(Index).split("/") \'提取表名称到数组,0是表名,1是列组 Dim Builder As New ADOXBuilder \'定义一个新的ADOXBuilder \'这一段如果不加数据源名称,则会增加txt文本中的表到内部数据表,但不会增加到共享数据源的表中;而如果把它改为Dim Builder As New ADOXBuilder("CS001"),则会提示如下的错误 .NET Framework 版本:2.0.50727.5485 Foxtable 版本:2014.11.11.1 错误所在事件:窗口,窗口1,Button1,Click 详细错误信息: 在对应所需名称或序数的集合中,未找到项目。 然后在外部数据源中,可以看到共享数据库中增加了“车辆管理”的表,但没有增加“产品明细”的表,而且“车辆管理”表没有数据列。 这是为什么呢? [此贴子已经被作者于2015/4/22 21:31:32编辑过]
|
||||
-- 作者:黄训良 -- 发布时间:2015/4/23 0:33:00 -- 参考 http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=62917 |
||||
-- 作者:chnfo -- 发布时间:2015/4/23 10:20:00 -- 你那个帖下载的附件看不到源码,没用 [此贴子已经被作者于2015/4/23 10:20:34编辑过]
|
||||
-- 作者:Bin -- 发布时间:2015/4/23 10:32:00 -- 之前和你解释过了.你这样单项目使用当然是不可能会成功的. 首先,你得新建一个项目,没有这两个表的,外部数据源也没有. 设置自动更新版本功能. 然后.你更新项目,新建这两个外部数据源表,并且手动添加进狐表, 此时.你这个项目是完全正常运行, 狐表里和数据源里都已经有这两个表了. 但是,你老版本发布的想,数据源和 项目均没有这两个表. 此时老项目执行自动更新,那么只会更新项目文件,此时项目文件里面有这两个表,但是老数据源里没有,就会报错不正常执行. 此时,这个功能就发挥作用了.可以自动更新,把表添加到数据源里去
|