Foxtable(狐表)用户栏目专家坐堂 → 求教用ADOXBuilder如何修改列类型


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

主题:求教用ADOXBuilder如何修改列类型

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


加好友 发短信
等级:四尾狐 帖子:810 积分:5250 威望:0 精华:0 注册:2009/2/6 10:38:00
求教用ADOXBuilder如何修改列类型  发帖心情 Post By:2013/5/3 22:52:00 [只看该作者]

在帮助中用ADOXBuilder可以动态创建表和列、重命名列,那么如何用ADOXBuilder修改列类型,或者有其他办法

又如:对字符列的长度进行修改,该如何写代码

[此贴子已经被作者于2013-5-3 22:53:52编辑过]

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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/5/4 8:57:00 [只看该作者]

用户已被锁定

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


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

以下是引用muhua在2013-5-4 8:57:00的发言:

先执行DeleteColumn

再执行AddColumn

 

 

您说的这个方法是在表刚创建还可以用,但是创建之后并录入了数据,发现设置的列类型有问题需要修改时就不能用了,比如字符列,由于设置时对字符长度估计不准,需要修改为备注型时,或者需要对字符长度进行修改时,这种方法就不好使了.


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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/5/4 13:36:00 [只看该作者]

以下是引用cxabc123在2013-5-4 13:30:00的发言:

您说的这个方法是在表刚创建还可以用,但是创建之后并录入了数据,发现设置的列类型有问题需要修改时就不能用了,比如字符列,由于设置时对字符长度估计不准,需要修改为备注型时,或者需要对字符长度进行修改时,这种方法就不好使了.


这个是设计师责任了:比如设计一座桥梁,当初没充分考虑过几年后可能车流量,几年后满足不了车流量,如何解决?能简单加宽吗?


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


加好友 发短信
等级:童狐 帖子:215 积分:1306 威望:0 精华:0 注册:2013/4/7 22:24:00
  发帖心情 Post By:2013/5/7 20:47:00 [只看该作者]

以下是引用don在2013-5-4 13:36:00的发言:

期待狐狸爸爸解释下,应该有解决的办法吧图片点击可在新窗口打开查看


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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/5/7 23:37:00 [只看该作者]

以下是引用傻马难骑在2013-5-7 20:47:00的发言:

期待狐狸爸爸解释下,应该有解决的办法吧图片点击可在新窗口打开查看


 曲线救国的办法也是有的: 储存 ==> 删除 ==>增加 ==> 赋值

Dim cmd As New SQLCommand

Dim dt As DataTable

cmd.C

cmd.CommandText = "SELECT *  From {客户}"

dt = cmd.ExecuteReader()


Dim Builder As New ADOXBuilder("Sale") '要指定数据源名称

Builder.Open()

With Builder.Tables("客户")

    .DeleteColumn("客户名称")

    .AddColumn("客户名称" ,ADOXType.String, 100)

End With

Builder.Close() '关闭ADOXBuilder


For Each dr As DataRow In dt.datarows

    Dim cmd1 As New SQLCommand

    cmd1.C

    cmd1.CommandText = "UPDATE {客户} SET 客户名称 = '" & dr("客户名称") & "' WHERE 客户ID = '" & dr("客户ID") & "'"

    cmd1.ExecuteNonQuery()

Next

Syscmd.Project.Open(ProjectFile)



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


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

这种办法和2楼的一样,并不是很理想

 


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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/5/8 9:08:00 [只看该作者]

以下是引用cxabc123在2013-5-8 9:03:00的发言:

这种办法和2楼的一样,并不是很理想

 


在老大強大ADOXBuilder前,這是唯一能做的


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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/5/8 9:17:00 [只看该作者]

搜索到SQL修改列類型的方法:

2.更改列的属性


例:表table2中的列id为int型,现改为char型
alter table table2 alter column id char

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2013/5/8 9:32:00 [只看该作者]

試驗成功!

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.Connection Name = "Sale"
cmd.CommandText = "alter Table 客户 alter Column 客户名称 Text"
cmd.ExecuteNonQuery()
Syscmd.Project.Open(ProjectFile)

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