通过查询条件,我将查询出来的结果显示到了dbgrid中,我的原意是:在dbgrid中显示的结果中,我用鼠标点击某个结果的时候,会在其他地方详细的显示出来,看着舒服。可是,这个过程并没有实现好,当我的查询结果出来了之后,点击DBGRID中的某一条结果的时候,dbgrid总是一闪一闪的,其他地方的结果也没有出来,我的程序有问题吗???付代码如下:procedure TUserManageForm.DBGrid1CellClick(Column: TColumn);
var
//  temp:string;
  Usernum:string;
  i:integer;
begin
  Usernum:=dbgrid1.DataSource.DataSet.fieldbyname('Usernum').AsString;
//  temp:=dbgrid1.cells[0.dbgrid1.row];
//  showmessage('你好,你现在选中的是'+Usernum);
  adoquery1.Close;
  adoquery1.SQL.Clear;
  adoquery1.SQL.Add('select * from userinfo where Usernum="'+Usernum+'"');
  adoquery1.Open;
  edit17.Text:=adoquery1.FieldValues['username'];
  edit18.Text:=adoquery1.FieldValues['usersex'];
  edit19.Text:=adoquery1.FieldValues['Birthday'];
  edit20.Text:=adoquery1.FieldValues['userage'];
  edit21.Text:=adoquery1.FieldValues['Identitynum'];
  edit22.Text:=adoquery1.FieldValues['Nativeplace'];
  edit23.Text:=adoquery1.FieldValues['Telephone'];
  edit24.Text:=adoquery1.FieldValues['Workplace'];
  edit25.Text:=adoquery1.FieldValues['Buildingnum'];
  edit26.Text:=adoquery1.FieldValues['Roomnum'];
  edit27.Text:=adoquery1.FieldValues['Housepapernum'];
  edit28.Text:=adoquery1.FieldValues['Carnum'];
  edit29.Text:=adoquery1.FieldValues['Liveintime'];
  edit30.Text:=adoquery1.FieldValues['Usernum'];
  edit31.Text:=adoquery1.FieldValues['Re'];end;上面就是我写的代码,当我点击了dbgrid中的某一项的时候,并没有在edit中显示出来我想要的结果,:(

解决方案 »

  1.   

    你可以用dbedit控件.datasource个dbgrid一样
      

  2.   

    我的意思是:我开始做查询操作,查询出来的结果有好多,当我点击dbgrid中显示的某一条结果的时候,会在那些edit中显示详细的信息。
      

  3.   

    现在我遇到的问题是:当我点击了dbgrid中的一项的时候,下面的众多的edit中显示的确实是我选中的那条信息的详细信息,但是,那个dbgrid中却只有我选中的那一条记录了,其它记录都没有了,:(如何才能保留dbgrid中的那些记录哪???还让它显示那么多记录哪???并且是dbgird中被选中的记录是我当前想要显示详细信息的那条记录。
      

  4.   


    //  adoquery1.SQL.Add('select * from userinfo where Usernum="'+Usernum+'"');sql 都改变了,怎么还可能显示你原来的所以记录。
      

  5.   

    搞不懂楼主,用dbedit有什么不可以?试过没有?试了就知道了。
      

  6.   

    你不要再用adoquery1另外用一个adoquerytemp
    adoquerytemp.SQL.Add('select * from userinfo where Usernum="'+Usernum+'"');
      下面的都换掉就可以了。
      adoquery1.Open;
      edit17.Text:=adoquery1.FieldValues['username'];
      edit18.Text:=adoquery1.FieldValues['usersex'];
      edit19.Text:=adoquery1.FieldValues['Birthday'];
      edit20.Text:=adoquery1.FieldValues['userage'];
      edit21.Text:=adoquery1.FieldValues['Identitynum'];
      edit22.Text:=adoquery1.FieldValues['Nativeplace'];
      edit23.Text:=adoquery1.FieldValues['Telephone'];
      edit24.Text:=adoquery1.FieldValues['Workplace'];
      edit25.Text:=adoquery1.FieldValues['Buildingnum'];
      edit26.Text:=adoquery1.FieldValues['Roomnum'];
      edit27.Text:=adoquery1.FieldValues['Housepapernum'];
      edit28.Text:=adoquery1.FieldValues['Carnum'];
      edit29.Text:=adoquery1.FieldValues['Liveintime'];
      edit30.Text:=adoquery1.FieldValues['Usernum'];
      edit31.Text:=adoquery1.FieldValues['Re'];
      

  7.   

    同意楼上 adoquery1的数据集已经改变,所以DBGride随之改变.或者直接用DBEdit,这样只要连接好各个字段,就什么代码都不要了。