我在进行有条件的对DBGrid中的数据进行查询时,不能进行有效查询,由于数据库表中的数据不是按大类进行有序排列的,如先是几条信息系的记录,然后就是几条管理系的记录,然后又是信息系的记录.在查询时,只能实现数据的部分查询,即只能查到几条连续的记录,对于中断的下几条记录就查不到了,具体代码如下:
procedure TF_student.BtnqryClick(Sender: TObject);
var sqlstr:string;
begin
     sqlstr:='select * from student where name like ''%'+edname.text+'%'' ';
     if cmbdepart.text<>'全部' then
     sqlstr:=sqlstr+' and depart='''+cmbdepart.Text +'''  '   ;
     if cmbclass.text<>'全部' then
     sqlstr:=sqlstr+' and classno='''+cmbclass.text+'''  '   ;
     adoQryStu.sql.Clear ;
     adoQryStu.SQL.Add(sqlstr);
     adoQryStu.Open ;end;

解决方案 »

  1.   

    adoQryStu.sql.Clear ;前加  adoQryStu.Close;
      

  2.   

    加个排序"order by 系名" 应该就可以了吧
      

  3.   

    楼主,你是什么数据库,在数据库中用sql实验一下看看行不行
      

  4.   

    close;
    sql.clear;
    sql.add();
    open;排序可以用order by fieldName
    好好检查一下自己的数据表中的数据,然后单步执行,看看你的sql.text是什么,然后到数据库里用这个sql.text执行。。看看如何。
      

  5.   

    是啊,怪了,我刚才在sql 里查询了一下发现也查不到第一条记录!表内容如下,在查询时找不到ID=1和ID=2的记录!而从下面复制过来的内容来看,怎么还有乱码啊?
    ID studentno name sex birthday depart enteryear classno specialty photo password
    1 s021101 江山       男 1984-02-11 "惡籯&ucirc;
                 " 2002 0211 "惡嵯童
              " <Binary> 123
    2 s022101 王奎庆     男 1983-12-09 "管林簺&ucirc;
    计算机系            " 2002 0221 计算机科学与技术           <Binary>
    3 s022102 李铮       男 1984-04-05 计算机系 2002 0221 "管林示寑书戎枀/
              " <Binary>
    4 s022103 陈传流     男 1982-02-24 计算机系 2002 0221 "管林示寑书戎枀/
              " <Binary>
    5 s022201 康金弓     女 1983-02-24 计算机系 2002 0222 "管林示寑书戎枀/
              " <Binary>
    6 s021102 刘天洋     男 1983-04-11 信息系               2002 0211 信息工程             <Binary>
    7 s021103 孙海彬     男 1982-08-21 信息系               2002 0211 信息工程             <Binary>
    8 s021104 李二超     男 1981-09-14 信息系               2002 0211 信息工程             <Binary>
    9 s021105 吴海永     男 1982-04-07 信息系               2002 0211 信息工程             <Binary>
    10 s021201 石文华     男 1982-02-17 信息系               2002 0212 信息工程             <Binary>
    11 s021202 韩淼       男 1983-12-05 信息系               2002 0212 信息工程             <Binary>
    12 s021203 丁进军     男 1983-04-22 信息系               2002 0212 信息工程             <Binary>
    13 s021301 罗威       男 1981-11-28 信息系               2002 0213 信息工程             <Binary>
    14 s023101 李英平     男 1984-02-06 管理系               2002 0231 管理工程             <Binary>
    15 s023102 周宝珠     男 1984-04-19 管理系 2002 0231 管理工程 <Binary>
    16 s023103 谢勇       男 1982-03-16 管理系 2002 0231 管理工程 <Binary>
    17 s023201 陈立       女 1983-04-03 管理系 2002 0232 管理信息系统             <Binary>
    18 s023202 李美媛     女 1983-02-01 管理系 2002 0232 管理信息系统           <Binary>
    19 s023301 季烨       女 1982-02-13 管理系 2002 0233 办公自动化             <Binary>
    21 s023302 王华       女 1983-10-22 管理系              2002 0233 办公自动化             <Binary>
    22 s023303 许红如     女 1983-12-30 管理系 2002 0233 办公自动化            <Binary>
    28 s011101 王熙凤     女 1982-08-05 信息系 2001 0111 信息工程 <Binary>
    30 s023104 刘少奇     男 1984-02-23 管理系 2002 0231 skdfj <Binary>
      

  6.   

    可能问题就出在下面这两个乱码上吧
    "惡籯&ucirc"管林簺&ucirc;