如何在DBGRID里面添加数据,添加多行后,可以一次提交的那种,
最好有例子!分可以再加!
[email protected]

解决方案 »

  1.   

    dbgird是不能添加数据的,只能添加到dbgird所关联的datasource的dataset。也就是数据库表中。
    方法如下with query1 do
    begin
      for i := 0 to j do
      begin  
        insert;
        FieldByName('aa').AsString := edit1.text;
        ....
      end;  post;
    end;如果要提交到数据库的话最后加上:
    query1.ApplyUpdates(-1);
      

  2.   

    //添加
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      DBGrid1.DataSource.DataSet,Append;
      DBGrid1.DataSource.DataSet.FieldByName('字段名').AsString := Edit1.Text;
      DBGrid1.DataSource.DataSet.FieldByName('字段名').AsString := Edit2.Text;
    end;
    //执行操作
    procedure TForm1.Button2Click(Sender: TObject);
    var
      i : integer;
    begin
      for i := 0 to BGrid1.DataSource.DataSet.RecordCount -1 then
        begin
          ClientDataSet1.FieldByName('字段名').AsString =      DBGrid1.DataSource.DataSet.FieldByName('字段名').AsString;
          ......
          ClientDataSet1.Post;
          ClientDataSet1.ApplyUpdates(0);  
        end;
    end;
      

  3.   

    //添加
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      DBGrid1.DataSource.DataSet,Append;
      DBGrid1.DataSource.DataSet.FieldByName('字段名').AsString := Edit1.Text;
      DBGrid1.DataSource.DataSet.FieldByName('字段名').AsString := Edit2.Text;
    end;
    //执行操作
    procedure TForm1.Button2Click(Sender: TObject);
    var
      i : integer;
    begin
      for i := 0 to BGrid1.DataSource.DataSet.RecordCount -1 then
        begin
          ClientDataSet1.FieldByName('字段名').AsString =      DBGrid1.DataSource.DataSet.FieldByName('字段名').AsString;
          ......
          ClientDataSet1.Post;
          ClientDataSet1.ApplyUpdates(0);  
        end;
    end;