首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DBGrid,dbf合并2行

DBGrid,dbf合并2行
EN

Stack Overflow用户
提问于 2016-05-16 15:07:37
回答 1查看 705关注 0票数 1

我使用的是DBGrid,dbf和DataSource。当移除某一本书时,只移除1。我一直被困在一个任务中,如果它们是相同的--例如,如果图书名为"Test“,那么它们将合并为2行;如果图书名为"Test”,我会添加另一行的图书anem“Test”,它将合并并将图书的装载从1更改为2或2到3等等。

代码语言:javascript
运行
复制
procedure TForm1.Button1Click(Sender: TObject);

begin
  with dbgrid1.DataSource.DataSet do begin
    Insert;
    Edit;
    DBGrid1.DataSource.DataSet.FieldByName('Nr.').AsInteger;
    Fields.fieldbyname('Year').value := Edit1.Text;
    Fields.fieldbyname('Author').value := Edit2.Text;
    Fields.fieldbyname('Name').value := Edit3.Text;
    Fields.fieldbyname('Ammount').value := Edit4.Text;
    Post;
    Next;

  end;
end;  

在这里你可以看到它的样子

Gads -年份汽车-作者Nosaukums BooksName Kopijas Ammount

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-16 15:25:27

你可以这样做:

代码语言:javascript
运行
复制
procedure TForm1.AddBook;
var
  ADataSet : TDataSet;
begin
  //  Note: you need to complete this by filling in the DBGrid1.DataSource.DataSet.FieldByName('Nr.').AsInteger;
  //  Also, I'm assuming that the field which stores the number of copies is called "Amount" - change if necessary
  ADataSet := dbgrid1.DataSource.DataSet;
  if ADataSet.Locate('Name', Edit3.Text, []) then begin
    ADataSet.Edit;
    ADataSet.FieldByName('Amount').AsInteger := ADataSet.FieldByName('Amount').AsInteger + 1;
  end
  else begin
    ADataSet.Insert;
    ADataSet.fieldbyname('Year').value := Edit1.Text;
    ADataSet.fieldbyname('Author').value := Edit2.Text;
    ADataSet.fieldbyname('Name').value := Edit3.Text;
    ADataSet.fieldbyname('Amount').value := Edit4.Text;
  end;
  ADataSet.Post;
end;

这种方法避免了数据库中有两个具有相同名称字段值的行,这比拥有重复项,然后通过更新其中一个和删除另一个合并到一起更好。

另外,请注意,我避免使用"with“构造。当您使用"with“时,您在键入时保存的内容通常会超出调试的数量,以修复由于使用而出现的错误。

但是,如果这是一个具有支持Sql的后端RDMS的多用户数据库,最好使用在服务器上执行的Sql语句进行插入或更新,例如使用参数化存储过程(以避免Sql注入风险),然后刷新客户端应用程序中的数据。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37257176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档