--用两个'表示一个'insert myTable(strCol) values('abcde''fgh')
insert myTable(strCol) values('hi''j''gd')

解决方案 »

  1.   

    处理单引号的存储过程:
    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
      

  2.   

    to WangZWang(阿来):
    字串中单引号的位置都是不确定的啊,也就是说可能是随机的,怎么去写上两个单引号
      

  3.   

    to lsp69(浪子神剑):
    那我怎样调用你那个存储过程
    如 CheckString  'ff'ff'
    报错:
    第 1 行: 'ff' 附近有语法错误。
    服务器: 消息 105,级别 15,状态 1,行 1
    字符串 '
    ' 之前有未闭合的引号。
      

  4.   

    方法一:用转义字符
           insert myTable(strCol) values('abcde''fgh')
           insert myTable(strCol) values('hi''j''gd')
    方法二:将字符“'”用另一个字符代替,如用“"”或中文的“’”
    哪个方法更好,要看你的实际情况了
      

  5.   

    lsp69(浪子神剑):
    出来帮帮我啊
      

  6.   

    不用的.直接插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
      

  7.   

    谢谢各位,我用以下方法在VB.NET里先将字符串转化了
    str=str.Replace("'","''")