处理单引号的存储过程: create proc CheckString @str_check varchar(600), @str1 varchar(600) output as declare @pos int declare @lenth intset @lenth=len(@str_check) set @pos=charindex(@str_check,'''',0) while(@pos>0) begin set @str1=substring(@str_check,0,@pos+1)+''''+ substring(@str_check,@pos+1,@lenth-@pos-1) set @pos=charindex(@str_check,@pos+2) end select @str1=@str_check go
to WangZWang(阿来): 字串中单引号的位置都是不确定的啊,也就是说可能是随机的,怎么去写上两个单引号
不用的.直接插sqlstr="insert into tablename (test) values (@test)" dim Cmd as new sqlcommand(sqlstr,conn) Cmd.Parameters.Add(New SqlClient.SqlParameter("@test", SqlDbType.Char, 10)) Cmd.Parameters("@test").value="test'" Cmd.executenonquery
create proc CheckString
@str_check varchar(600),
@str1 varchar(600) output
as
declare @pos int
declare @lenth intset @lenth=len(@str_check)
set @pos=charindex(@str_check,'''',0)
while(@pos>0)
begin
set @str1=substring(@str_check,0,@pos+1)+''''+ substring(@str_check,@pos+1,@lenth-@pos-1)
set @pos=charindex(@str_check,@pos+2)
end
select @str1=@str_check
go
字串中单引号的位置都是不确定的啊,也就是说可能是随机的,怎么去写上两个单引号
那我怎样调用你那个存储过程
如 CheckString 'ff'ff'
报错:
第 1 行: 'ff' 附近有语法错误。
服务器: 消息 105,级别 15,状态 1,行 1
字符串 '
' 之前有未闭合的引号。
insert myTable(strCol) values('abcde''fgh')
insert myTable(strCol) values('hi''j''gd')
方法二:将字符“'”用另一个字符代替,如用“"”或中文的“’”
哪个方法更好,要看你的实际情况了
出来帮帮我啊
dim Cmd as new sqlcommand(sqlstr,conn)
Cmd.Parameters.Add(New SqlClient.SqlParameter("@test", SqlDbType.Char, 10))
Cmd.Parameters("@test").value="test'"
Cmd.executenonquery
str=str.Replace("'","''")