参数@type也可能是“aa”,或更多的“aa or c_name='bb' or c_name='cc' or c_name='dd' or c_name='ee'”

解决方案 »

  1.   

    所以在这里我只好使用参数@sql来写入查询语句,不知有否更好的方法。
      

  2.   

    set @sql = 'select c_name,i_nameid from t_epfname where c_name='''+@type+''''
      

  3.   

    给你个例子,关键是字符串里的一个单引号要用两个单引号来替换才不会出错declare @str varchar(8000),@aa varchar(300)
    set @aa='''aa'' or c_name=''bb'' or c_name=''cc'''
    set @str='select * from yourtable where c_name='+@aa
    print @str
      

  4.   

    原来我引号的写法错误,现把调试正确的告诉大家:
    我使用asp.net页面调用这个过程,在这里的字符串中的单引号的写法如下:
    myCommand.SelectCommand.Parameters["@type"].Value="'"+str[1]+"'";
    在循环中的写法:
    myCommand.SelectCommand.Parameters["@type"].Value=myCommand.SelectCommand.Parameters["@type"].Value+" or c_name='"+str[i]+"'";再次感谢各位!