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


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

主题:关于动态建立表的问题

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
关于动态建立表的问题  发帖心情 Post By:2010/8/20 15:54:00 [只看该作者]

老大,我想在项目中建一张表,用于动态创建表,有:表名、列名、列类型 等列,然后在增加表的代码中

Dim Builder As New ADOXBuilder
Dim
tbl As ADOXTable
Builder.Open()
tbl = Builder.NewTable(
"订单") '创建表
With
tbl
    .AddColumn(
"日期" ,ADOXType.DateTime)
    .AddColumn(
"产品" ,ADOXType.String, 12)
    .AddColumn(
"客户" ,ADOXType.String, 20)
    .AddColumn(
"数量" ,ADOXType.Integer)
    .AddColumn(
"备注" ,ADOXType.Text)
End With
Builder.AddTable(tbl)
'增加表
Builder.Close()

 

 

将ADOXType.DateTime用“列类型”中的值代替,这时候“列类型”列的数据类型应该如何设置,或者这样的代码应该如何来写,

比如:

With tbl
    .AddColumn(列名
,列类型)
 
End With

肯请老大指点

[此贴子已经被作者于2010-8-20 15:55:46编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/8/20 15:56:00 [只看该作者]

用Select Case 逐个根据表中的值来判断对应的列类型,然后增加列。

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2010/8/20 15:57:00 [只看该作者]

没有跟简单的办法,也就是在增加表的时候批量去增加列吗
[此贴子已经被作者于2010-8-20 15:57:04编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/8/20 15:58:00 [只看该作者]

已经很简单了


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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2010/8/20 16:09:00 [只看该作者]

老大,能帮忙写一段吗,我试了好多便了,就是搞不定

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/8/20 16:11:00 [只看该作者]

以下是引用cxabc123在2010-8-20 15:54:00的发言:

老大,我想在项目中建一张表,用于动态创建表,有:表名、列名、列类型 等列,然后在增加表的代码中

Dim Builder As New ADOXBuilder
Dim
tbl As ADOXTable
Builder.Open()
tbl = Builder.NewTable(
"订单") '创建表
With
tbl
    .AddColumn(
"日期" ,ADOXType.DateTime)
    .AddColumn(
"产品" ,ADOXType.String, 12)
    .AddColumn(
"客户" ,ADOXType.String, 20)
    .AddColumn(
"数量" ,ADOXType.Integer)
    .AddColumn(
"备注" ,ADOXType.Text)
End With
Builder.AddTable(tbl)
'增加表
Builder.Close()

 

 

将ADOXType.DateTime用“列类型”中的值代替,这时候“列类型”列的数据类型应该如何设置,或者这样的代码应该如何来写,

比如:

With tbl
    .AddColumn(列名
,列类型)
 
End With

肯请老大指点

[此贴子已经被作者于2010-8-20 15:55:46编辑过]

 

不妨将你做的东东传上来。


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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2010/8/20 16:12:00 [只看该作者]

做来做去,到现在还没有成功一点呢,思路都没有成形,不知道该如何做

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/8/20 16:13:00 [只看该作者]

Dim Builder As New ADOXBuilder
Dim tbl As ADOXTable
Builder.Open()
tbl = Builder.NewTable("订单") '创建表
For Each dr As DataRow In Tables("xxx").DataRows
    With tbl
        Select Case dr("列类型")
            case "字符型"
               增加字符型列
            case "日期型"
               增加日期型列
            '...
    End With
Next
Builder.AddTable(tbl) '增加表
[此贴子已经被作者于2010-8-20 16:12:47编辑过]

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2010/8/20 16:16:00 [只看该作者]

原先是用论坛上介绍的SQL语言增加表,现在老大公布了他的箱底货,我想改用这个办法来做,但是不知道如何才能做好。原先的那个办法比较简单,但是新增加的表不能自动调出来。现在老大的这个办法可以自动调出表来,但就是比较复杂。请各位帮忙了

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
  发帖心情 Post By:2010/8/20 16:17:00 [只看该作者]

这个方法如果实现的话,设计的项目数据库的扩展功能就很强大了,个性化会进一步增强
[此贴子已经被作者于2010-8-20 16:18:16编辑过]

 回到顶部
总数 14 1 2 下一页