CString sql=""; 
m_ID="";//商品编码 
m_Name="";//商品名称 
假如用户输入了:“001”,“CPU'",既 m_ID="OO1",m_Name="CPU'" 
在商品名称中输入了单引号,下面语句执行时出错, 
sql.Format("insert into 商品 (商品编码,商品名称)values('%s','%s')" 
,m_ID,m_Name,) 
怎样解决单引号问题?我不想过滤掉单引号--因为这样数据就不完整了

解决方案 »

  1.   

    1、使用参数化操作。
    2、操纵记录集对象: AddNew / Update
      

  2.   


    如果要用SQL语句的话,把单引号替换成2个单引号就可以了,比如原来是a'b'c,现在就得是a''b''c或者通过RecordSet的AddNew函数添加,直接给各个字段赋值,这样就不用替换单引号了
      

  3.   

    http://soft.zdnet.com.cn/software_zone/2007/0915/508046.shtml
      

  4.   

    对头
    就是替换成两个单引号(不是双引号!!)
    当然如果用addnew,putcollect,貌似不需要这样的转换,他会自动完成
      

  5.   

    用字符串代替应该没什么问题吧
    cstring str;
    str = "ab'cd";
    str += " 'etc"
    CString sql = "select * ....";
    sql += str;