如题,代码如下:
         CString stri;
ADO m_ado;
m_ado.OnInitADOConn();
m_CboGZMa.GetLBText(m_CboGZMa.GetCurSel(),stri);
m_CboGZMiaoShu.ResetContent();
CString sql3;
sql3.Format("SELECT 故障码 FROM faultcode WHERE 故障描述 = '+stri+' ");//
m_ado.m_pRecordset = m_ado.OpenRecordset(sql3); while(!m_ado.m_pRecordset->adoEOF)
{
m_CboGZMiaoShu.AddString((_bstr_t)(m_ado.m_pRecordset->GetCollect ("故障码")));
m_ado.m_pRecordset->MoveNext();
}其中stri的值会随另外一个组合框的变化而发生变化,其内容为汉字,求高手指点,从网上查了好久,不得其解!

解决方案 »

  1.   

    这样试试
    sql3.Format("SELECT 故障码 FROM faultcode WHERE 故障描述 = '''+stri+''' ");//
      

  2.   

    在网上看有人说需要转码,却不知如何转。有人说在‘stri’前加N,试了也不行,拜托高手们指点啊!
      

  3.   

    这样试试:
    sql3.Format("SELECT 故障码 FROM faultcode WHERE 故障描述 = '"+stri+"'");
      

  4.   

    --要不这样试试
    sql3.Format("SELECT 故障码 FROM faultcode WHERE 故障描述 = N'+stri+' ");//
      

  5.   

    还是先检查一下你的 sql3 是否正确吧.
      

  6.   

    在SQL查询分析器中,只加单引号就可以查出来,为什么写到VC里就这么麻烦!求高手帮忙啊
      

  7.   

    把faultcode这个表的表结构贴上来
      

  8.   

    章节号 int 4 0
    故障描述 varchar 8 0
    故障码 varchar 200 0
      

  9.   

    不需要加N的,5楼晴天的方法试过没?看上去应该对的
    sql3.Format("SELECT 故障码 FROM faultcode WHERE 故障描述 = '"+stri+"'");