//查询数据库
ADODataSet1.Close;
ADODataSet1.CommandText:=sql;
ADODataSet1.Open;
 //显示在DBGrid中 
DataSource1.DataSet:=ADODataSet1;
DBgrid1.DataSource:=DataSource1;
DBGrid中显示的数据是四列,分别是部门编号,部门名称,用户名,注册时间。要在这个数据集中添加一个列,使数据集有五列(部门编号,部门名称,用户名,注册时间,状态),代码要怎么写啊。

解决方案 »

  1.   

    不习惯用ADODataSet,用ADOQuery吧,在ADOQuery创建一个计算的field表示状态,在CalcFields事件中写这个列的值的代码//查询数据库 
    ADOQuery1.Close; 
    ADOQuery1.sql.Text:=sql; 
    ADOQuery1.Open; 
    //显示在DBGrid中 
    DataSource1.DataSet:=ADOQuery1; 
    DBgrid1.DataSource:=DataSource1; 在TForm1.ADOQuery1CalcFields(DataSet: TDataSet);写代码确定每一列你添加的列的值
      

  2.   

    ADOQuery1.FieldList.Add()但要注意添加的列的对应字段要在数据集中存在(计算列除外)
      

  3.   

    var
      TemFields:Tfield; 
      TemFields:=Tfield.Create(self);
      TemFields.FieldKind:=fkData;
      ////设置field属性
      qry1.Fields.Add(TemFields);///TForm1.ADOQuery1CalcFields(DataSet: TDataSet);赋值
      

  4.   

    可以直接在ADODataSet空间里面添加,只是添加列后修改添加列的FieldKInd属性为fkCalculated就可以了。其默认值为fkdata是从数据库中得来,所以不行。