我在程序中写了如下代码,运行时出错:
    Adoq.Close;
    Adoq.SQL.Clear;
    Adoq.SQL.Add('select *  from Tb_department ');
    adoq.SQL.Add('where Dept_Id like ''%' + trim(EditID.Text) + '%''');
    Adoq.Prepared;
    adoq.Active := true;
    adoq.First;
    while not adoq.Eof do
    begin
      Dbgrid1.Fields[0].AsString:=adoq.FieldByName('Dept_Id').AsString;
      Dbgrid1.Fields[1].AsString:=adoq.fieldByName('Dept_name').AsString;
      adoq.Close;
      adoq.Free;
    end;
不知道DBGrid1怎样取值?请大家多多指点阿

解决方案 »

  1.   

    var s:string
        i:integer;
    begin
    s:=dbgrid1.Fields[0].AsString;   //获取当前行的第1列的值
    i:=dbgrid1.Fields[2].AsInteger;  //获取当前行的第2列的值
      

  2.   

    不知道DBGrid1怎样从数据库中取值 显示数据?
      

  3.   

    先设置DBGrid1,让DBGrid1连接ADOq
    然后改成这样试试看
        Adoq.Close;
        Adoq.SQL.Clear;
        Adoq.SQL.Add('select *  from Tb_department ');
        adoq.SQL.Add('where Dept_Id like ''%' + trim(EditID.Text) + '%''');
        Adoq.Prepared;
        adoq.Active := true;
        Dbgrid1.Fields[0]:=adoq.FieldByName;
        Dbgrid1.Fields[1]:=adoq.fieldByName('Dept_name');
      

  4.   

    dbgrid.datasource.dataset.fieldbyname('字段').value
    当前行的给定列
      

  5.   

    dbgrid.datasource.dataset.fieldbyname('字段').value  
    :=adoq.FieldByName('Dept_Id').AsString;
    这样还是不行,找不到字段  
      

  6.   

    先设置DBGrid的DataSource属性,dbgrid.datasource.dataset:=adoq;
    再设置Dbgrid1.Column[0].FieldName:=''Dept_Id';这样第一列就能显示
    Dept_id字段的值了。
      

  7.   

    你执行了这句:adoq.Close;当然没了数据