以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]'-' 附近有语法错误。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=89769)

--  作者:simia
--  发布时间:2016/8/29 17:14:00
--  [求助]'-' 附近有语法错误。
我想在狐表里调用存储过程 jd_hd,带四个参数tm,hd,sta,ends。其中后两个是日期格式
都是引用的窗口控件的值。

Dim cmd As New SQLCommand
cmd.C        
cmd.CommandText = "Exec jd_hd  " & tm & "," & hd & "," & sta & "," & Ends & ""
Dim Count As Integer= cmd.ExecuteNonQuery()
messagebox.show(count)

每次都报错说\'-\' 附近有语法错误。
但是我用同样的参数在数据库里运行下面的存储过程是正常的,求帮忙看看是什么情况,抓狂一下午了T T


ALTER PROCEDURE [dbo].[jd_hd](@商品条码 Varchar(20), @活动力度 Varchar(20),@活动开始时间 Varchar(20),@活动结束时间 Varchar(20))

AS 
BEGIN
IF OBJECT_ID (N\'jd_detail\', N\'U\') IS NOT NULL
DROP TABLE jd_detail
Declare @S Varchar(8000)

select @s=\'Select [jd_kc].商品条码,[jd_kc].地区,[jd_xl].库存,[jd_xl].在途,[jd_xl].已下单,[jd_xl].未下单,[jd_xl].[7日],[jd_xl].[14日],[jd_xl].[28日],avg([jd_kc].库存减量) as [\'+@活动力度+\'_\'+@活动开始时间+\'至\'+@活动结束时间+\'] into jd_detail\'
select @s=@s+\' fr om ([jd_kc] left join promote on [jd_kc].商品条码=promote.商品条码 and promote.平台=\'\'京东\'\' and 活动力度=\'\'\'+@活动力度+\'\'\') left join [jd_xl] on [jd_kc].商品条码=[jd_xl].商品条码 and [jd_kc].地区=[jd_xl].地区\'
select @s=@s+\' where [jd_kc].商品条码=\'\'\'+@商品条码+\'\'\'   and datediff(d,\'\'\'+ @活动开始时间+\'\'\',[jd_kc].统计日期)>=0 and datediff(d,[jd_kc].统计日期,\'\'\'+ @活动结束时间+\'\'\')>=0\'
select @s=@s+\' group by  [jd_kc].商品条码, [jd_kc].地区,[jd_xl].库存,[jd_xl].在途,[jd_xl].已下单,[jd_xl].未下单,[jd_xl].[7日],[jd_xl].[14日],[jd_xl].[28日]\'
 print @S
 EXEC(@S)
END

--  作者:大红袍
--  发布时间:2016/8/29 17:17:00
--  

要加上单引号

 

cmd.CommandText = "Exec jd_hd  \'" & tm & "\',\'" & hd & "\',\'" & sta & "\',\'" & Ends & "\'"


--  作者:simia
--  发布时间:2016/8/29 17:46:00
--  
太感谢版主了!!!