一个窗体上有一个dbgrid,和一个edit,在保存的时候这个dbgrid的某一列要引用edit的值。
我在新增按钮中写到:
dbgrid1.Fields[7].AsString:=edit1.Text;
这样已经实现了我的功能,可是当我增加了多条之后,突然发现edit中的值错误了,想改一下,可是这时候dbgrid中的却改不过来,于是我在保存按钮中写道:
dbgrid1.Fields[7].AsString:=DBComboBox2.Text;
但是这样的话只是修改了获得焦点的一行,我想把所有的记录都跟着edit的修改而修改怎么办啊?

解决方案 »

  1.   

    你这样修改只是当前的游标在的行,
    可以通过sql语句修改如果不想用sql语句,这样可以,但是数据量大的时候,不推荐使用
    with dbgrid1.datasource.dataset do
    begin
      first;
      while not eof do
      begin
        dbgrid1.Fields[7].AsString:=DBComboBox2.Text;
        next;
      end;end;试验一下,我没有调试过。
      

  2.   

    还有一个问题:
    我在保存的时候,发现同一条记录保存了好几遍,因为是一个dbgrid用query连了多个表,所以在录入的时候有可能使得存入其中一个表的记录是完全相同的,怎么样处理才能使存入库得记录不重复?
    是不是要将相同的记录删除掉?还是在存的时候处理掉?最好给点代码。谢谢了!
      

  3.   

    表最后有主键
    或者建立唯一索引
    SQL的帮助有,很详细的,自己看看吧。删除现有的重复数据有很多中方法,google一堆
      

  4.   

    表最好有主键
    或者建立唯一索引
    SQL的帮助有,很详细的,自己看看吧。删除现有的重复数据有很多中方法,google一堆