Foxtable(狐表)用户栏目专家坐堂 → 如何将excel表中的数据通过按钮导入到sql数据库表中


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

主题:如何将excel表中的数据通过按钮导入到sql数据库表中

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


加好友 发短信
等级:八尾狐 帖子:1908 积分:16976 威望:0 精华:0 注册:2014/7/29 19:09:00
如何将excel表中的数据通过按钮导入到sql数据库表中  发帖心情 Post By:2019/2/13 14:11:00 [只看该作者]

有个从其他系统导出来的excel表,有4万行记录,20列,要一次性全部新增导入到sql数据库的临时表中,用sql的数据导入向导是会,现在是要设计在窗口中通过
一个按钮来实现,要怎么写代码才能实现,即通过按钮直接将选择的路径的excel表中这些数据全部新增到sql数据库中
谢谢!

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


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


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


加好友 发短信
等级:八尾狐 帖子:1908 积分:16976 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2019/2/13 17:33:00 [只看该作者]

要设置数据库的那两项操作的话,直接将代码写在按钮上,
Dim cmd As New SQLCommand
cmd.ConnectionName = Mydata
cmd.CommandText = "exec sp_configure 'show advanced options',1" & vbCrlf
cmd.CommandText = cmd.CommandText & "reconfigure" & vbCrlf
cmd.CommandText = cmd.CommandText & "exec sp_configure 'Ad Hoc Distributed Queries',1" & vbCrlf
cmd.CommandText = cmd.CommandText & "reconfigure"
cmd.ExecuteNonQuery

提示没有权限,要怎么办?

用户没有执行此操作的权限。
您没有运行 RECONFIGURE 语句的权限。
用户没有执行此操作的权限。
您没有运行 RECONFIGURE 语句的权限。

那是不是普通的用户就不能用了?

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


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

你设置数据源的时候,请用高权限的用户登录;

 

或者,你动态添加一个数据源后(有权限的),再执行语句 http://www.foxtable.com/webhelp/scr/1944.htm

 


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


加好友 发短信
等级:八尾狐 帖子:1908 积分:16976 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2019/2/14 18:53:00 [只看该作者]

现在改为先将数据复制到项目前台的窗口表中再用sqlbulkcopy来新增到sql数据库中,但有个问题,3到4万行数据,粘贴时很慢,要近十分钟.
通过一个按钮执行SystemReady = False停止代码执行,但此时粘贴就没有执行了,这种情况要如何写代码才能实现粘贴前停止所有代码执行,完成后恢复呢?
谢谢!

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


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

为什么要复制粘贴?直接读取excel的内容过来,然后写到sqlserver数据库取不行?

 

 


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


加好友 发短信
等级:八尾狐 帖子:1908 积分:16976 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2019/2/14 21:56:00 [只看该作者]

那个权限搞不定,sql中是设置了一个AAA的用户开通了如下两个权限,所有人都是以这个帐户登录系统的,

图片点击可在新窗口打开查看此主题相关图片如下:tim截图20190212140524.jpg
图片点击可在新窗口打开查看
要在哪里设置才行?


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


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


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


加好友 发短信
等级:八尾狐 帖子:1908 积分:16976 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2019/2/15 20:50:00 [只看该作者]

还是不行,客户端上只有安装excel与项目,没有安装sql2008这样的软件,是要将excel的数据导入到远程的服务器上的sql数据库中,直接在客户项目的窗口按钮上写代码
Dim cmd As New SQLCommand
cmd.ConnectionName = Mydata
'cmd.CommandText = "USE master" & vbCrlf
'cmd.CommandText = cmd.CommandText & "GO" & vbCrlf
'cmd.CommandText = cmd.CommandText & "GRANT ALTER SETTINGS To AAA" & vbCrlf
cmd.CommandText = "exec sp_configure 'show advanced options',1" & vbCrlf
cmd.CommandText = cmd.CommandText & "reconfigure" & vbCrlf
cmd.CommandText = cmd.CommandText & "exec sp_configure 'Ad Hoc Distributed Queries',1" & vbCrlf
cmd.CommandText = cmd.CommandText & "reconfigure"
cmd.ExecuteNonQuery

'---创建链接服务器 
cmd.CommandText = "exec sp_addlinkedserver   'ITSV','','SQLOLEDB','xxx.gnway.cc,10433'" & vbCrlf   '--注意加端口号
cmd.CommandText = cmd.CommandText & "exec sp_addlinkedsrvlogin 'ITSV','false',null,'AAA','123456'" 
cmd.ExecuteNonQuery

cmd.CommandText = "SELECT * into ITSV.ABC.dbo.A2 FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0','Data Source=C:\Users\Administrator\Desktop\A1.xlsx;User ID=Admin;Password=;Extended properties=Excel 12.0')...[Sheet1$]"
cmd.ExecuteNonQuery
运行就出错,不能创建链接服务器,也提示没有权限,
现在只能将excel表先上传到远程服务器上的某个文件夹下然后直接写储存过程执行时从服务器本地调用那个上传的excel文件就可以,但是这样也很麻烦
如果在服务器上写储存过程能否直接调用远程客户端上的某个文件夹下的excel文件呢?




 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106510 积分:541709 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/2/15 21:02:00 [只看该作者]

您要把execl文件上传到服务器才能使用这个sql导。

如果execl文件是在客户端的,只能读取出来,然后插入到外部表中,类似这种:http://www.foxtable.com/webhelp/scr/2334.htm

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