这是一段根据变量m_name进行模糊查询的程序,将查询结果显示在信息列表框控件中。关键代码是:
                 CRecordset rs(&m_db);
//打开所有的客户信息记录,根据提供的姓名模糊查询
CString temp = "%";
CString sql;
sql.Format("select * from customer_info_tab where name like '%s%s%s'",
temp,m_name,temp);                     //m_name是一个编辑框变量
rs.Open(CRecordset::dynaset, sql);
while (!rs.IsEOF()) {
int id;
CString name;
CDBVariant var;
//获取客户信息ID字段值
rs.GetFieldValue((short)0, var, SQL_C_SLONG);
if (var.m_dwType != DBVT_NULL)
id = var.m_iVal;
var.Clear();
//获取姓名字段值
rs.GetFieldValue(1, name);
//获取地区信息字段值
//向客户信息列表框控件中加入新的一行信息.
InsertcustomerItem(&m_listHR,id,name);
rs.MoveNext();
}
rs.Close();现在的问题是,每次进行查询,信息框控件中的数据是整个表的数据,而不是按条件查询出来的数据。
整个代码我查了2个小时了还是没结果,请高手指点一下!不胜感激!

解决方案 »

  1.   

    temp是什么?
    sql.Format("select * from customer_info_tab where name like '%s%'",
    m_name);
    试试
      

  2.   

    sql.Format("select * from customer_info_tab where name like '%s%s%s'", 
    temp,m_name,temp); 这是什么意思,你M_NAME都没用上吧
    ,你全部LIKE'S'的??
      

  3.   

    这个仿佛不是SQL语句的问题吧
      

  4.   

    sql.Format("select * from customer_info_tab where name like '%"&m_name&"%'")
      

  5.   

    不是SQL语句的问题啊,我在查询分析器设置过,
    select * from customer_info_tab where name like '%吴%'可以得到正确结果啊
      

  6.   

    我真晕了,忘了一句UpdateData(true);编辑框的内容没读到n_name里面去;散分了哈哈哈