当向数据库中插入数据时(调用存储过程除外),若字符串中含有单撇号',就会出现错误。现在我在存储的时候利用str.Replace("'","~");的方法将'替换成~,读取时再替换回来。
问题:
  如果从数据库中读取大量的数据,返回一个DataSet,那时,我再逐一替换字符串,是不是效率会很低?有没有其他方法解决这一问题?

解决方案 »

  1.   

    用参数不就解决了吗?
    Select * from Usertable where User=@user
      

  2.   

    在存的时候str.Replace("'","''");
    取得时候不用replace了
      

  3.   

    sql="insert into table1 (aa,bb,cc) select aaa,bbb,ccc from table2"
    比如 变量 cc含有“'”那么就应该这样子写:sql="insert into table1 (aa,bb," & """" & cc & """) select aaa,bbb,ccc from table2"
    你试一下,我之前也碰到过这个问题,然后这样写就解决问题了。
      

  4.   

    在存的时候str.Replace("'","''");
    取得时候不用replace了
      

  5.   

    用参数解决的办法不错。除了'外,还有别的什么字符在插入SqlServer时需要注意的,比如说%,是不是问题也很大,我指的是在查询的时候,如果利用统配符进行查询,那么含有%的字段会不会有问题?
      

  6.   

    like this!set QUOTED_IDENTIFIER off
    update c_news set newstitle = "''''" where newsid = "000001"
      

  7.   

    保存之前先 str=str.Replace("'","''"),然后再保存;
      

  8.   

    严重同意
    spland(spland)
     
    在存的时候str.Replace("'","''");
    取得时候不用replace了
      
     
      

  9.   

    再SQLServer中除了'外还有别的特殊字符要注意吗?