我的表    usertest    
             userid          username        userwork  
               
                 0601              张三                北京  
                 0002              王二                上海  
                 7003              李四                武汉  
                 0004              张飞                重庆  
                 0500              牛顿                火星      
 
   如果我先查询7003      
   数据显示在ListView里面  
                   7003              李四                武汉  
   如果我再查询  0500  那么我想ListView显示  
                   7003              李四                武汉  
                   0500              牛顿                火星  
   如果在查询0001  ,那么我想ListView显示  
                   7003              李四                武汉  
                   0500              牛顿                火星  
                   0601              张三                北京  
   如果我再查询0500,那么ListView显示没有反应,依然是  
                   7003              李四                武汉  
                   0500              牛顿                火星  
                   0601              张三                北京  
 
   有人帮忙吗?能把代码贴一下吗?万分感谢!!或是大家有更好的解决办法,用其他控件也行,那控件一定要是能多选或是单选的!因为我要选择打印!

解决方案 »

  1.   

    貌似考虑到可以用SQL来考虑,此功能等价与union
      

  2.   

    这个似乎不麻烦吧,甚至说简单,解决方案含简单啊放个TEdit,放个按钮,放个TADOQuery,放个ListView方法一:按钮事件写入var
      S1, S2, S3: string;
    begin
       S1:='SELECT * FROM usertest WHERE userid IN('
       if ADOQuery.SQL.Count > 1 then S2:=ADOQuery.SQL.String[1]; //取原来SQL的第2行
       S2:=S2+','+QuotedStr(Edit1.Text); //附加新增加的值
       if Copy(S2,1,1) = ',' then Delete(S2,1,1); //删除第一个条件时的逗号
       ADOQuery.SQL.Clear;
       ADOQuery.SQL.Add(S1);
       ADOQuery.SQL.Add(S2);
       ADOQuery.SQL.Add(')');
       ADOQuery.Open;
       //剩下的就是往ListView里面添加数据了
    end;方法二var
      I: Integer;
    begin
      with TADOQuery1.Create(Self) do
      try
        Connection:=数据连接;
        SQL.Add('SELECT * FROM usertest WHERE userid='+QuotedStr(Edit1.Text));
        Open;
        if RecordCOunt > 0 then
        begin
          for I:=0 to ListView.Items.Count-1 do
          begin
            //遍历看看是否存在,没有就添加
          end;
        end
        finally
          Close;
          Free;
      end;
    end;
      

  3.   

    还有另外的方法在2中,直接新建一个TListItem,数据添加完毕后判断是否在TListView(ListView.Items.IndexOf(LIstItem) >0)中就行了
    现在CSDN的提问都是要代码,和原来要思路不同了,都快餐时代了
      

  4.   

    Hank(星星农场) 的方法不错的