道理很简单,SQLSERVER规定:被单引号括起来的字符串中的每个单引号必须转换成一对单引号.

解决方案 »

  1.   

    其實呢,在寫 sql 之前加上這句
    SET QUOTED_IDENTIFIER OFF 
    GO
    SET ANSI_NULLS ON 
    GO
    就不區分大小寫和單\雙引號
    這樣你在寫sql時就能避免了 ' " 的問題,而且有時候也能使程序的易讀性增強
      

  2.   

    假如 我在 程序当中
    是用双引号 包起来的 也是这个原则吗 ??
    string str="select ...." 该怎么去写 ?象这样的 set @sqlStr=@sqlStr+' and FJobAdd = '+''''+@FJobAdd + ''''
    我要把等号 换成 模糊查询 我的 2个 % 该怎么写 ?
     set @sqlStr=@sqlStr+' and FJobAdd like % '+''''+@FJobAdd + ''%''  这样写对吗?对于 楼上几位 回答的? 我还是 不清楚 ?? 能不能 详细点.....................
      

  3.   


    set @sqlStr=@sqlStr+' and FJobAdd like % '+''''+@FJobAdd + ''%'' /*这里错了*/
    改为:
    set @sqlStr=@sqlStr+' and FJobAdd like % '+''''+@FJobAdd + '%'''
    再简化一下:
    set @sqlStr=@sqlStr+' and FJobAdd like % '''+@FJobAdd + '%'''
      

  4.   

    set @sqlStr=@sqlStr+' and FJobAdd like '+ '''%'+@FJobAdd + '%''' 
     
    ' and FJobAdd like '----------左右两边的' ' 代表符号, 就跟字符串中 String str=" "; 用这个包起来,SQL 中 ' '包起来'    ''%'+@FJobAdd + '%''    ' ----------左右两边的' ' 代表符号 ''     %'+@FJobAdd + '%      '' ----- sql 中 一个' 用一对 '' 替换,所以 '' 就看成是 一个 ' %'+@FJobAdd + '%  --------------中间 还有 ' ' 一对单引号 ,是对 @FjobAdd 而言的吗 ??[][][]][你们 能 分解 这个例子 给我讲讲吗 ?? 还是不懂 EXEC('SELECT replace(FNameen,''"'','''''''')AS FNameen FROM 表') 这个也是 ' ' " ' '     ,    ' ' ' ' ' ' ' '
     1 2 3 4 5          6 7 8 9 a b c d SQLSERVER规定:被单引号括起来的字符串中的每个单引号必须转换成一对单引号
    所以 12 看作是一个 ' 
           45 看作是一个'
    [][][]后面的 我就 看不懂了..........................我是菜鸟中的菜鸟 各位仁兄一定要将详细点 ?
      

  5.   

    1.假设要执行下面的SQL语句:
    select * from table where 1=1 and FJobAdd like '%xyz%'
    2.变成字符串就是:(为了易于理解及看起来不致混乱,先用双引号表示字符串)
    "select * from table where 1=1 and FJobAdd like '%xyz%'"
    3.把'xyz'换成变量:
    set @FJobAdd = 'xyz'
    "select * from table where 1=1 and FJobAdd like " + "'%" + @FJobAdd + "%'"
    4.根据转换规则,把字符串内的每个单引号转换成一对单引号:
    "select * from table where 1=1 and FJobAdd like " + "''%" + @FJobAdd + "%''"
    5.把字符串用单引号表示:
    'select * from table where 1=1 and FJobAdd like ' + '''%' + @FJobAdd + '%'''