m_pSet -> m_strFilter.Format("name = '%s' AND hptelnum = '%s' AND qqnum = '%s' AND email = '%s'", Name, HpTelNum, QQNum, Email);
m_pSet -> Requery();
如上语句,假如Name, HpTelNum, QQNum, Email中有一个值为空,则requery就不能得到正确的记录
这是为什么?如何解决?

解决方案 »

  1.   

    比如说一个记录,Name为abcd, HpTelNum为123456778, QQNum在输入记录的时候没输入,为空
    Email为[email protected]
    跟踪其值发现m_pSet -> m_strFilter.Format("name = '%s' AND hptelnum = '%s' AND qqnum = '%s' AND email = '%s'", Name, HpTelNum, QQNum, Email);
    执行完后QQNum值为'',其他值正常
    用这个条件,执行m_pSet -> Requery();后
    m_pSet并不会指向以上那条记录
      

  2.   

    判断为空值的时候应该用 IS NULL。
      

  3.   

    m_pSet -> m_strFilter.Format("name = '%s' AND hptelnum = '%s' AND qqnum = '%s' AND email IS NULL", Name, HpTelNum, QQNum, Email);
    -----
    如:
    SELECT * FROM tableName WHERE name IS NULL 
    就是取出name为空值的记录