我要實現這樣的功能:當edit1.Text有數據時就查詢出相關的數據,edit1.Text時空的時候就顯示出所有數據,我在sql server2000裡的存儲過程語句可以如下這樣寫:select MoldFactory as 廠別,MoldFileName as 文件名稱,ProductName as 品名,MoldFileNO 模具編號,MoldFileVersion as 版本,convert(varchar(10),MoldFileApplyDate,120) as 申請日期,Convert(varchar(10),MoldFileEffectiveDate,120) as 生效日期 from MoldMainlyData
where (ProductName=@param1 or @param1='')但我在adoquery中的sql.Text裡輸入以上語句想實現這種功能時,卻不行,為什么,我應該怎樣弄呢?謝謝!

解决方案 »

  1.   

    你用if..else语句分两种情况写嘛一定要写在一条语句上?
      

  2.   

    如果用if... else...那如果我有10來個這樣的需求怎么辦? where (field1=@param1 or @param1='') and (field2=@param1 or @param1='')...
      

  3.   

    用like试试'select * from 表 where 字段 like ''%'+trim(edit1.text)+'%'''
      

  4.   

    这个问题简单就是用if 语句,adoquery.close;
    adoquery.sql.clear;
    adoquery.sql.add('select * from table1');adoquery.sql.add('where ... ');if Trim(edit1.text)<>'' thenadoquery.sql.add(' and field1='''+Trim(edit1.text)+''' ');///////如果有edit1做為查詢條件if Trim(edit2.text)<>'' thenadoquery.sql.add(' and field1='''+Trim(edit2.text)+''' '););///////如果還有edit2做為查詢條件........adoquery.open;