delphi DBGrid 怎样修改显示的记录而不改变数据库的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi DBGrid 怎样修改显示的记录而不改变数据库的值相关的知识,希望对你有一定的参考价值。

delphi DBGrid 怎样修改显示的记录而不改变数据库的值
比如DBGrid 显示了2个字段 一个是 ID 一个是 NAME
ID的记录有10条 从11~20 ,这些数据是从数据库感知出来的
现在我想让DBGrid的ID字段显示从1~10而不改变数据库里的值
要怎样实现??请教高手 回到得好给加分
你没弄明白我的意思 我的意思是
ID的记录有10条 从11~20 ,这些数据是从数据库感知出来的
现在我想让DBGrid的ID字段显示从1~10而不改变数据库里的值
也就是在DBGrid 显示的数据中,ID不显示为应该显示的11~20,而显示为1~10,而其同一记录对应的其他字段显示的是数据库中ID为11~20的记录
而你所说的select * from 表 where id between 1 and 10 我知道的,没这么简单的

参考技术A 这个就是你的查询语句的问题了,DBGrid显示的是你的查询结果,
一般我们都是用 select * from [表]
这样显示的就是整个表了,
正如你说的,要显示前10条,
就只需在 刚开始初始化的时候 把select 语句,弄成查询前面10条就行了。

delphi的DBgrid怎么获取当前记录的上一条bookmark,dbgrid的数据源是dataset

DBGrid1.DataSource.DataSet.Previous;
应该可以直接找到上一条记录吧.
不要直接操作数据敏感部件,你可以使用ClientDataSet,把操作跟数据库隔离出来.
只有按特定的按钮才更新数据库,不然,一量出错,而你不小心退出,就有你哭的啊
参考技术A 直接用DBgrid绑定数据源能够实现的功能还是比较局限的,你可以用三层结构,写个中间转换层,这样基本上能解决任何问题了。(ps,DBGrid控件真心不咋地,不仅UI难看,功能也不是太全面。) 参考技术B procedure TForm1.ActionLoadImageExecute(Sender: TObject);
var
vBookMark: TBookmark;
begin
vBookMark := DBGridCJ.DataSource.DataSet.GetBookmark;
try
// 你的代码
finally
DBGridCJ.DataSource.DataSet.GotoBookmark(vBookMark);
DBGridCJ.DataSource.DataSet.FreeBookmark(vBookMark);
end;
end;
// DBGridCJ 就是一个TDBGrid
参考技术C 直接去dataset对应的query上的数据就好啦追问

我的dataset结果是直接从数据库里获取的 query是直接对数据库操作的。所以应该不可以吧...有没有其它方法呢?

追答

dataset也有类似的操作啊,query也是从数据库里取出来的。都是对内存里的数据集做操作

以上是关于delphi DBGrid 怎样修改显示的记录而不改变数据库的值的主要内容,如果未能解决你的问题,请参考以下文章

怎样在delphi取 dbgrid的一列值来进行二次查询?

delphi dbgrid显示数据

delphi怎样在dbgrid中显示树形结构字段

delphi dbgrid筛选记录?

Delphi DBGrid记录移动问题!

delphi中如何在dbgrid中主动添加序号?求赞助!