为了对数据纪录的重复检查,我需要取得DBGrid 的内容,怎样循环取得DBGrid中第一列单元格中的所有内容????

解决方案 »

  1.   

    var i:integer;
    begin
    for i:=1 to dbgrid1.DataSource.DataSet.RecordCount-1 do
    begin
    showmessage(dbgrid1.DataSource.DataSet.Fields[0].asstring);
    dbgrid1.DataSource.DataSet.Next;
    end;
      

  2.   

    你没有必要这样循环dbgrid的列啊!
    你可以对dbgrid连接的dataset进行查询就可以了,举个例子:
    如果你dbgrid连接的是一个table,数据库的名称为a1,第一个字段为mm,要检查的值为aa;
    1.你在窗体上加一个query在检查重复中这样写:
    query1.close;
    query1.sql.clear;
    query1.sql.add('select * from a1 where mm=''aa''');
    query1.open;
    if query1.recordcount>0 then
    begin
      showmessage('数据库中已经存在此数据,无法添加相同的记录!');
      abort;
    end;
      

  3.   

    var i:integer;
    begin
    for i:=1 to dbgrid1.DataSource.DataSet.RecordCount-1 do
    begin
    showmessage(dbgrid1.DataSource.DataSet.Fields[0].asstring);
    dbgrid1.DataSource.DataSet.Next;
    end;
      

  4.   

    var i:integer;
    begin
    for i:=1 to dbgrid1.DataSource.DataSet.RecordCount-1 do
    begin
    showmessage(dbgrid1.DataSource.DataSet.Fields[0].asstring);
    dbgrid1.DataSource.DataSet.Next;
    end;
      

  5.   

    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
      Strs: TStringList;
      Field: TField;
      DataSet: TDataSet;
    begin
      DataSet := DBGrid1.DataSource.DataSet;
      DataSet.DisableControls;
      DataSet.First;
      Field := DBGrid1.Columns[0].Field;  Strs := TStringList.Create;
      Strs.BeginUpdate;
      while not DataSet.Eof do
        Strs.Add(Field.AsString);
      DataSet.EnableControls;  Strs.Sort;   //排序
      Strs.EndUpdate;
      //去掉重复项,已经排序了,所以很简单
      Strs.Free;
    end;————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  6.   


      while not DataSet.Eof do
    begin
        Strs.Add(Field.AsString);
        DataSet.Next;
    end;————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  7.   

    for i:=1 to dbgrid1.DataSource.DataSet.RecordCount do
      

  8.   

    更正:for i:=1 to dbgrid1.DataSource.DataSet.RecordCount do