Foxtable(狐表)用户栏目专家坐堂 → 关于动态增加表的问题


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

主题:关于动态增加表的问题

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
关于动态增加表的问题  发帖心情 Post By:2010/8/25 15:07:00 [显示全部帖子]

用ADOXBuilder可以动态增加外部表,那么增加的外部表能不能同时加载到项目中来

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2010/8/25 15:36:00 [显示全部帖子]

我试了以下就是不成功,老大,写一段指导一下

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2010/8/25 15:39:00 [显示全部帖子]

 

'创建外部数据表

Tables("项目表管理").Filter = ""

Tables("项目表管理").Filter = "[数据库名] = '" & e.Form.Controls("数据库名").Value & "' And [表名] = '" & e.Form.Controls("新建表名").Value & "'"

 

Dim s As String =e.Form.Controls("数据库名").Value

Dim s1 As String =e.Form.Controls("新建表名").Value

'判断创建数据表的环境

If s="" Then

    MessageBox.Show("数据库名不能为空!")

    Return

End If

If s1 = "" Then

    MessageBox.Show("表名不能为空!")

    Return

End If

If GetTableNamesFromConnection("" & e.Form.Controls("数据库名").Value & "").Contains(s1)

    MessageBox.Show(s1 & " 外部表已经存在,不能创建!")

    Return

End If

For Each dt As datatable In DataTables

    If dt.Name.Contains(s1) Then

        MessageBox.Show(s1 & " 内部表已经存在,不能创建!")

        Return

    End If

Next

'创建外部表

Dim Builder1 As New ADOXBuilder(s)

Builder1.Open()

Dim tbl2 As ADOXTable = Builder1.NewTable(s1)

For Each dr As DataRow In DataTables("项目表管理").DataRows

    If dr("表名") = s1 Then

        With tbl2

            Select Case dr("列类型")

                Case "字符型"

                    .AddColumn(dr("列名") ,ADOXType.String, dr("字符长度"))

                Case "日期型"

                    .AddColumn(dr("列名") ,ADOXType.DateTime)

                Case "整数型"

                    .AddColumn(dr("列名") ,ADOXType.Integer)

                Case "短整数型"

                    .AddColumn(dr("列名") ,ADOXType.Short)

                Case "微整数型"

                    .AddColumn(dr("列名") ,ADOXType.Byte)

                Case "单精度小数型"

                    .AddColumn(dr("列名") ,ADOXType.Single)

                Case "双精度小数型"

                    .AddColumn(dr("列名") ,ADOXType.Double)

                Case "高精度小数型"

                    .AddColumn(dr("列名") ,ADOXType.Decimal)

                Case "逻辑型"

                    .AddColumn(dr("列名") ,ADOXType.Boolean)

                Case "备注型"

                    .AddColumn(dr("列名") ,ADOXType.Text)

            End Select

        End With

    End If

Next

Builder1.AddTable(tbl2, True, True)

Builder1.Close()

'创建查询表

Dim q As new OuterTableBuilder
q.TableName = s1
q.ConnectionName =s
q.SelectString = "Select * From [s1] "
q.Build

 

 

'重新打开项目,加载新增数据表

syscmd.Project.Open(ProjectFile)

MainTable = Tables(s1)

'数据表创建完成.


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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2010/8/25 15:40:00 [显示全部帖子]

请老大看看,就是不能自动加载到项目,不知为什么

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2010/8/25 16:14:00 [显示全部帖子]

老大,这样创建的表,重新打开项目后,就会消失,有没有办法能够让她保留下来

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2010/8/25 16:51:00 [显示全部帖子]

根据我前面提供的代码,该如何设置,能指点一下吗
[此贴子已经被作者于2010-8-25 16:52:20编辑过]

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2010/8/25 17:22:00 [显示全部帖子]

以下是引用狐狸爸爸在2010-8-25 17:17:00的发言:
还有一个办法:
 
Connection的方法有:
 
GetTableNames:返回一个字符串集合,包括此数据源所有的表名。
 
示例:
 
列出外部数据源nwnd中的所有表名:
Dim lst As List(Of String)
lst = Connections("nwnd").GetTableNames
For Each nm As String In lst
    Output.Show(nm)
Next

没明白怎么用,我的底子太差了。

[此贴子已经被作者于2010-8-25 17:23:05编辑过]

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2010/8/25 17:25:00 [显示全部帖子]

老大,有没有更好的办法,在创建表的同时能够加载到项目,我想你是能够做到的,建议试试

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2010/8/25 17:29:00 [显示全部帖子]

期盼:创建外部表的同时能够加载到项目

 回到顶部