注册 登录
编程论坛 VC++/MFC

关于VC数据库中查询语句中

itolyid 发布于 2013-09-03 11:51, 622 次点击
我编写一语句查询邮票发行量,在对话框中输入5000时,但查询出的只是大于等于5的数据,如输入456,得出数据为大于等于4的。为什么?
  1、我定义的对话框中数据为字符,数据据ACCESS中变量也为字符。

void CStampCX::OnBnClickedFresh()
{
    UpdateData();     int iN=0;
   
                  if(strNum.Trim()=="") {strStamp[3]="%";iN=0;}
                  else {strStamp[3]=strNum.Trim();iN=1;}               
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  if(iN==0)  strSQL="select * from V邮票档案warn where TolNumble >=  '"+strStamp[3]+"'
  else  strSQL="select * from V邮票档案warn where TolNumble like  '%"+strStamp[3]+"%'";  
   
            if(ADOExecute(strSQL))  
                 CCtrlList::GetDBtoList(&m_ctrlList,m_pRecordset,9);
3 回复
#2
yuccn2013-09-03 15:17
调试一下,看下这条strSQL 这个字符串是什么
#3
itolyid2013-09-05 15:11
这能调试正常运行,只是在
 我在“if(ADOExecute(strSQL))”前加个AfxMessageBox(strSQL)检测,如在对话框相应栏输入数字,如75时,对话框能弹出  select * from V邮票档案warn where TolNumble >=75。在执行显示在CLISTCTRL框中显示的是所有大于7的数据(等于7的不显示);如果单独输入一位数时如5或9时,能显示大于等于5或9的。
他只识别一个最高位数字。
1