新人求教,怎么把文件路径当做存储过程参数

老婆只娶一个 2013-09-25 04:56:38
想把excel导入数据,winform做一个小工具,选择excel文件,怎么把这个文件路径和名字做过程参数
...全文
274 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzw_0736 2013-09-27
  • 打赏
  • 举报
回复
指定的EXCEL文件中有sheet1嗎?
老婆只娶一个 2013-09-27
  • 打赏
  • 举报
回复
引用 5 楼 ai_li7758521 的回复:
create proc daoru
@path nvarchar(1000)
as
begin

	declare @sql nvarchar(max)
	select @sql=
	'insert into tb_yuanbiao select *from
	openrowset(''microsoft.jet.oledb.4.0'',''excel 5.0;hdr=yes;database='+@path+''',sheet1&)'

	exec(@sql)
end
我使用了这个,想把文件路径和文件名都做成参数可以吗?DATEBASE=@path,sheet1$提示不包含表"sheet1$
老婆只娶一个 2013-09-27
  • 打赏
  • 举报
回复
帮忙代码写一下,新手,没有到一点即通的地步,谢谢
ai_li7758521 2013-09-27
  • 打赏
  • 举报
回复
create proc daoru
@path nvarchar(1000)
as
begin

	declare @sql nvarchar(max)
	select @sql=
	'insert into tb_yuanbiao select *from
	openrowset(''microsoft.jet.oledb.4.0'',''excel 5.0;hdr=yes;database='+@path+''',sheet1&)'

	exec(@sql)
end
Cloud_Hero 2013-09-27
  • 打赏
  • 举报
回复
用BCP命令,可以放很多参数进去。
老婆只娶一个 2013-09-27
  • 打赏
  • 举报
回复
引用 15 楼 ap0405140 的回复:
bcp导出. 参考 http://www.cnblogs.com/xiaogangqq123/archive/2011/09/30/2196727.html
感谢,结贴
老婆只娶一个 2013-09-27
  • 打赏
  • 举报
回复
引用 13 楼 ap0405140 的回复:
试试这个,调用例子: exec daoru @filepath='D:\ap',@filename='001.xlsx' PS:若仍有问题,将存储过程中的exec(@tsql)改为print @tsql,打印出来看看.

create proc daoru
(@filepath varchar(100),  --> 文件路径
 @filename varchar(100)   --> 文件名
)
as
begin
 declare @tsql varchar(6000)
  
 select @tsql='insert into tb_yuanbiao select * from '
             +' openrowset(''microsoft.jet.oledb.4.0'',''excel 5.0;hdr=yes;database='+@filepath+'\'+@filename+';'', '
             +' ''select * from [sheet1$]'') '
              
 exec(@tsql)             
end
可以了,谢谢,我需要部分字段查询在导出到新的excel,用bcp?能帮忙写一下吗,万分感谢
唐诗三百首 2013-09-27
  • 打赏
  • 举报
回复
试试这个,调用例子: exec daoru @filepath='D:\ap',@filename='001.xlsx' PS:若仍有问题,将存储过程中的exec(@tsql)改为print @tsql,打印出来看看.

create proc daoru
(@filepath varchar(100),  --> 文件路径
 @filename varchar(100)   --> 文件名
)
as
begin
 declare @tsql varchar(6000)
  
 select @tsql='insert into tb_yuanbiao select * from '
             +' openrowset(''microsoft.jet.oledb.4.0'',''excel 5.0;hdr=yes;database='+@filepath+'\'+@filename+';'', '
             +' ''select * from [sheet1$]'') '
              
 exec(@tsql)             
end
老婆只娶一个 2013-09-27
  • 打赏
  • 举报
回复
引用 10 楼 ap0405140 的回复:
try this,

create proc daoru
(@filepath varchar(100),  --> 文件路径
 @filename varchar(100)   --> 文件名
)
as
begin
 declare @tsql varchar(6000)
 
 select @tsql='insert into tb_yuanbiao select * from '
             +' openrowset(''microsoft.jet.oledb.4.0'',''excel 5.0;hdr=yes;database='+@filepath+'\'+@filename+';'' '
             +' ,''select * from [sheet1$]'') '
             
 exec(@tsql)             
end
+号语法错误,能不能文件路径和文件名用弄一个参数,我是想用winform直接选取文件执行存储过程
老婆只娶一个 2013-09-27
  • 打赏
  • 举报
回复
引用 9 楼 lzw_0736 的回复:
指定的EXCEL文件中有sheet1嗎?
自动创建新excel文件
唐诗三百首 2013-09-27
  • 打赏
  • 举报
回复
try this,

create proc daoru
(@filepath varchar(100),  --> 文件路径
 @filename varchar(100)   --> 文件名
)
as
begin
 declare @tsql varchar(6000)
 
 select @tsql='insert into tb_yuanbiao select * from '
             +' openrowset(''microsoft.jet.oledb.4.0'',''excel 5.0;hdr=yes;database='+@filepath+'\'+@filename+';'' '
             +' ,''select * from [sheet1$]'') '
             
 exec(@tsql)             
end
老婆只娶一个 2013-09-26
  • 打赏
  • 举报
回复
create pro daoru as insert into tb_yuanbiao select *from openrowset('microsoft.jet.oledb.4.0','excel 5.0;hdr=yes;database=e:原文件.xls‘,sheet1&) 怎么修改啊
唐诗三百首 2013-09-25
  • 打赏
  • 举报
回复
以VB为例,选择文件用CommonDialog控件, 文件路径: CommonDialog.filename属性 文件名: CommonDialog.FileTitle属性
--小F-- 2013-09-25
  • 打赏
  • 举报
回复
直接在存储过程中用 VARCHAR类型就可以了吧 。

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧