Foxtable(狐表)用户栏目专家坐堂 → 快速保存代码求教


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

主题:快速保存代码求教

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


加好友 发短信
等级:童狐 帖子:205 积分:1969 威望:0 精华:0 注册:2017/8/17 12:59:00
快速保存代码求教  发帖心情 Post By:2017/9/20 21:46:00 [只看该作者]

查到下面这段代码,执行了一下出错,提示无法访问目标表D,是怎么回事?查了下,问题出在copy.WriteToServer(DataTables("表D").basetable)   '你的datatable名字,执行把DataTable中的数据写入DB。
Dim tran As System.Data.SqlClient.SqlTransaction
try
    Dim conn As new System.Data.SqlClient.SqlConnection("server=voyo;uid=sa;pwd=hailun.;database=Test")
    conn.Open() '打开链接
    tran = conn.BeginTransaction()
    Dim mapping1 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("第一列", "第一列")
    Dim mapping2 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("第二列", "第二列")
    Dim copy As new System.Data.SqlClient.SqlBulkCopy(conn, System.Data.SqlClient.SqlBulkCopyOptions.Default, tran)
    Copy.ColumnMappings.Add(mapping1)
    Copy.ColumnMappings.Add(mapping2)
    copy.DestinationTableName = "表D" '指定服务器上目标表的名称
    copy.BatchSize = 1000
    copy.WriteToServer(DataTables("表D").basetable)   '你的datatable名字,执行把DataTable中的数据写入DB
    tran.Commit()                                  '提交事务
    msgbox("OK")
catch ex As exception
    msgbox(ex.message)
    tran.Rollback()    '返回False 执行失败!
End try

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/20 23:34:00 [只看该作者]

 你的sqlserver数据库有【表D】吗?你要写入的表的名字是?

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


加好友 发短信
等级:童狐 帖子:205 积分:1969 威望:0 精华:0 注册:2017/8/17 12:59:00
  发帖心情 Post By:2017/9/20 23:44:00 [只看该作者]

表名钢筋,数据库里有这个表啊。
Dim tran As System.Data.SqlClient.SqlTransaction
try
    Dim conn As new System.Data.SqlClient.SqlConnection("server=。。。。。。") '改为自己数据库的连接字符串
    conn.Open() '打开链接
    tran = conn.BeginTransaction()

    Dim mapping1 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("编码_钢筋全码", "编码_钢筋全码") '改为自己的列名,有多少列就增加多少个
    Dim mapping2 As new System.Data.SqlClient.SqlBulkCopyColumnMapping("编码_钢筋编号","编码_钢筋编号")
    。。。
    Dim copy As new System.Data.SqlClient.SqlBulkCopy(conn, System.Data.SqlClient.SqlBulkCopyOptions.Default, tran)
    Copy.ColumnMappings.Add(mapping1)
    Copy.ColumnMappings.Add(mapping2)
   。。。
    copy.Destinati '指定服务器上目标表的名称
    copy.BatchSize = 1000
    copy.WriteToServer(DataTables("钢筋").Basetable)   '你的datatable名字,执行把DataTable中的数据写入DB
 tran.Commit()                                  '提交事务
    msgbox("OK")
catch ex As exception
    msgbox(ex.message)
    tran.Rollback()    '返回False 执行失败!
End try

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/20 23:47:00 [只看该作者]

加上下面代码了吗?操作的时候报什么错?

 

copy.DestinationTableName = "钢筋"


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


加好友 发短信
等级:童狐 帖子:205 积分:1969 威望:0 精华:0 注册:2017/8/17 12:59:00
  发帖心情 Post By:2017/9/20 23:51:00 [只看该作者]

加了。
报错为“无法访问目标表“钢筋”。”

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/21 9:13:00 [只看该作者]

以下是引用dengk03在2017/9/20 23:51:00的发言:
加了。
报错为“无法访问目标表“钢筋”。”

 

1、你数据源设置(连接字符串)没写对

 

2、你数据库用户没有访问对应表的权限


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


加好友 发短信
等级:童狐 帖子:205 积分:1969 威望:0 精华:0 注册:2017/8/17 12:59:00
  发帖心情 Post By:2017/9/21 9:49:00 [只看该作者]

错误检查出来了,运行成功,600行保存一秒多,太爽了!谢谢老师!

 回到顶部