以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  存储过程中的输入参数能否是表达式?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=92625)

--  作者:happyft
--  发布时间:2016/11/8 23:57:00
--  存储过程中的输入参数能否是表达式?
如查储存过程的输入参数是一个表达式,要怎么写才正确?

Dim strflt As String = " 进出日期 > \'2016-9-30\'"
 。。。。。
cmd.CommandText = "Exec tj_inoutstock \'" & strflt & "\'"  有单引号
cmd.CommandText = "Exec tj_inoutstock " & strflt & "   不要单引号
cmd.CommandText = "Exec tj_inoutstock N\'strflt "  按sql语法在变量前面加N\'

 tbl.DataSource = cmd.ExecuteReader

上面三种方式写运行储存过程都会出错,请问应该如何写才对?

谢谢






--  作者:有点蓝
--  发布时间:2016/11/9 8:41:00
--  
Dim strflt As String = " 进出日期 > \'\'2016-9-30\'\'"
 。。。。。
cmd.CommandText = "Exec tj_inoutstock \'" & strflt & "\'"  有单引号

--  作者:有点色
--  发布时间:2016/11/9 12:26:00
--  

 一般,拼接sql语句的时候,都要把单引号处理一下

 

Dim strflt As String = " 进出日期 > \'2016-9-30\'"

strflt = strflt.Replace("\'", "\'\'")

[此贴子已经被作者于2016/11/9 12:26:01编辑过]

--  作者:HappyFt
--  发布时间:2016/11/9 12:56:00
--  
在储存过程时面反复试了很久都不知道,原来是这里出的问题,谢谢两位老师!