这几天在做课程设计,开发一个小型的学生成绩管理信息系统,我要实现查询并显示数据库表中的单条记录,比如输入某个学生的学号就显示该学号学生的信息,现在有个问题是我不管输入哪个学号,总是把整个表的信息显示出来了,代码如下:
procedure Tmainform.Button1Click(Sender: TObject);
begin
  stuinformation2.ADOQuery1.Close;
  stuinformation2.ADOQuery1.SQL.Clear;
  stuinformation2.ADOQuery1.SQL.Add('select *from 学生成绩记录单 where 学生学号=:s学生学号');
  stuinformation2.ADOQuery1.Parameters.ParamByName('s学生学号').Value:=strtoint(edit34.Text);
  stuinformation2.ADOQuery1.Open;
  stuinformation2.ADOTable1.Close;
  stuinformation2.ADOTable1.Open;
  stuinformation2.Show;
end;
请问该如何修改?

解决方案 »

  1.   

    本帖最后由 bdmh 于 2011-07-01 10:23:14 编辑
      

  2.   

    我用的ADOConnection连接数据源,数据源是access数据库,接着放了个ADOTable连接Access数据库中的学生记录单的表,接着放了个ADOQuery连接ADOConnection,SQL设置为select*from 学生成绩记录单
      

  3.   

    adotable1和adoquery1只用其一就可以了,你是用什么显示信息的,DBGRID?
    去掉
    stuinformation2.ADOTable1.Close;
    stuinformation2.ADOTable1.Open;DataSource1的DataSet设置为adoquery1,dbgrid的datasource设置为datasource1
      

  4.   

    因为你的ADOQuery跟显示数据的控件之间没有联系,所以你查询的结果肯定不会显示了。
    可以参考#6的回答