比如我有一个学生成绩数据库表,里面有学号、姓名、英语、数学、语文、计算机
如何用CHECKBOX来动态查询不限定个的条件的查询。
希望高手们来解答,且最好给出一个例子。

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      strSQL:string;
    begin
     strSQL:='select * from 表名 where (学号='+'''111'')' ;
    if checkbox1.checked then //对应姓名
    strSQL:=strSQL+' and (姓名='+'''222'')' ;
    if checkbox2.checked then //对应科目类别
    strSQL:=strSQL+' and (类别='+'''222'')' ;
    showmessage(strSQL)end;
      

  2.   

    思路:一个CheckBox后跟一个编辑框之类,点击CheckBox设置其可用状态,然后在一个查询按钮单击事件中判断,再由此生成SQL语句的where部分,用这个做条件查询就是了procedure TForm1.cbUidClick(Sender: TObject);
    begin
      if cbUid.Checked then
        edtUid.Enabled := true
      else
        edtUid.Enabled := false;
    end;...procedure TForm1.bthInquClick(Sender: TObject);
    var
      sWhr: string;
    begin
      sWhr := '';
      ...
      if edtUid.Enabled and (edtUid.Text <> '') then
        sWhr := sWhr + ' and userid=' + QuotedStr(edtUid);
      ...
      {这样得到sWhr作为查询条件,再用数据集查询就可以了}
    end;