社区
Delphi
帖子详情
dbgrid怎么获取当前记录值?
javagxc
2010-05-17 04:29:29
我用DBGrid,ADODataSet和DataSourse三个组件读取数据库的一个表,
数据读出来了,现在想实现如下功能:
可以任意编辑表格内的任意记录,当光标离开这条记录时,获取当前记录的值,并把这条记录发送(TCP/UDP)到另外一个程序。
该怎么获取dbgrid中当前记录的值啊,用什么事件啊。菜鸟发问,请大虾帮忙,不胜感激!
...全文
903
20
打赏
收藏
dbgrid怎么获取当前记录值?
我用DBGrid,ADODataSet和DataSourse三个组件读取数据库的一个表, 数据读出来了,现在想实现如下功能: 可以任意编辑表格内的任意记录,当光标离开这条记录时,获取当前记录的值,并把这条记录发送(TCP/UDP)到另外一个程序。 该怎么获取dbgrid中当前记录的值啊,用什么事件啊。菜鸟发问,请大虾帮忙,不胜感激!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
javagxc
2010-05-20
打赏
举报
回复
最后的问题没解决呢,帖子老沉,结贴给分吧,谢谢大家啦
javagxc
2010-05-19
打赏
举报
回复
等待高人中......
scfanxzq
2010-05-19
打赏
举报
回复
[Quote=引用 16 楼 javagxc 的回复:]
当前值已经可以获取,获取方法如下:
DBGrid1.DataSource.Dataset.Fields[dbgrid1.Columns.Grid.SelectedIndex].AsString;
目前面临的最后一个问题是,我想光标离开的时候获取这个值,不管这个值有没有编辑过,要用什么事件啊
用oncolexit只能解决在同一行切换光标的问题,如果光标在不同行的同一列切换就失去作用了。……
[/Quote]
换一种思路:
准备条件:定义两个全局变量,并且在窗口创建期初始化。
1、当单元格点击的时候(OnCellClick),判断当前的列值和其中一个全局变量是否一致,判断当前的数据记录的值和另一个全局变量是否一致。
2、如果不一致,判断全局变量是否是初始值,如果是初始值,那么把当前的列和记录的值分别赋给两个全局变量。如果不是初始值,说明单元格已经改变,那么把全局变量作为你要的数据保存起来供后面使用。
3、把全局变量修改为当前的列和记录值。
scfanxzq
2010-05-19
打赏
举报
回复
你的绑定方法是不是这样的?
DBGrid->DataSoure->Query(Table)?
那不用考虑什么当前行了,你在dbGrid里面的onCellChange这之类的事件里面,直接写
Query(Table).fieldbyname('字段名').asstring;(……)
如果要深究的话,就是当你在DBGrid中选中一行的时候,数据集中的浮标就已经指到了数据集对应的行中,所以你不用做任何查找或者移动浮标的操作,直接取数据集中字段的值就可以了。
把你要的字段的值取出来之后,保存到变量里面,发送就ok
andylist
2010-05-18
打赏
举报
回复
说得好像很深澳,事实上DataSource好像早有此功能。
xjq2003
2010-05-18
打赏
举报
回复
[Quote=引用 4 楼 bdmh 的回复:]
这根grid无关,当你选中一条记录时,数据集就定位到这条数据上了,你只需要读取数据集中的数据就行了
[/Quote]
edit1.text:=dbgrid.datasource.dataset.fieldbyname('字段').asString;
huangheguyun
2010-05-18
打赏
举报
回复
直接读取数据集中的数据
javagxc
2010-05-18
打赏
举报
回复
[Quote=引用 4 楼 bdmh 的回复:]
这根grid无关,当你选中一条记录时,数据集就定位到这条数据上了,你只需要读取数据集中的数据就行了
[/Quote]
要怎么读取呢?我是菜鸟!
javagxc
2010-05-18
打赏
举报
回复
[Quote=引用 7 楼 hongss 的回复:]
你总要确定下,你要的是哪里的“当前值”吧?
你用什么操作去取“当前值”?鼠标点?
[/Quote]
鼠标点或者->、<-都可以的。
javagxc
2010-05-18
打赏
举报
回复
当前值已经可以获取,获取方法如下:
DBGrid1.DataSource.Dataset.Fields[dbgrid1.Columns.Grid.SelectedIndex].AsString;
目前面临的最后一个问题是,我想光标离开的时候获取这个值,不管这个值有没有编辑过,要用什么事件啊
用oncolexit只能解决在同一行切换光标的问题,如果光标在不同行的同一列切换就失去作用了。用什么控件可以行列切换时都能获取值啊。
贝隆
2010-05-17
打赏
举报
回复
学习
UPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUPUP
zrssweet
2010-05-17
打赏
举报
回复
读取数据集中的数据就行了
wxf999
2010-05-17
打赏
举报
回复
[Quote=引用 4 楼 bdmh 的回复:]
这根grid无关,当你选中一条记录时,数据集就定位到这条数据上了,你只需要读取数据集中的数据就行了
[/Quote]
是的,直接读取数据集
hongss
2010-05-17
打赏
举报
回复
你总要确定下,你要的是哪里的“当前值”吧?
你用什么操作去取“当前值”?鼠标点?
javagxc
2010-05-17
打赏
举报
回复
我想获取的值,可以是任意行任意列的,不能固定取哪一列啊,我取的时候还要判断我当前值在哪一列吗?
hongss
2010-05-17
打赏
举报
回复
你要的是鼠标点击那里的当前值?
比如
DBGrid1.SelectedField.DataSet.FieldValues['Date'];
bdmh
2010-05-17
打赏
举报
回复
这根grid无关,当你选中一条记录时,数据集就定位到这条数据上了,你只需要读取数据集中的数据就行了
guanking
2010-05-17
打赏
举报
回复
DataSource1的DataChange事件中处理
显示dbgrid当前记录的字段值。
DBGrid1.Datasource.Dataset.Fields[0].AsString //当前记录第一个字段值
DBGrid1.Datasource.Dataset.Fields[1].AsString //当前记录第二个字段值
DBGrid1.Datasource.Dataset.Fields[2].AsString //当前记录第三个字段值
。。。
DBGrid1.Datasource.Dataset.Fields[n].AsString //当前记录第n个字段值
winstonbonaparte
2010-05-17
打赏
举报
回复
onCellClick事件或是onkeypress事件都可以判斷的
varick_zhong
2010-05-17
打赏
举报
回复
onmousemove事件
DB
Grid
导出Excel
//
DB
Grid
.Columns[I].Field.Value 将
获取
当前
记录
第I列的
值
// 对这些
值
进行处理,例如写入Excel DataSet.Next; // 移动到下一条
记录
end; end; ``` 要导出数据到Excel,你需要创建一个新的Excel工作簿,添加...
BCB刷新
DB
grid
不换行
但在某些场景下,开发者可能需要在刷新
DB
Grid
时保持
当前
选中的行不变。本文将详细介绍如何在BCB中实现
DB
Grid
的刷新,并保持选中的行位置不变。 #### 二、基础知识回顾 1. **TBookmark对象**:在Delphi或BCB中,`...
delphi
db
grid
有条件合并单元格
在这个事件中,你可以访问
当前
单元格的信息,比如
值
、列索引、行索引等,然后根据业务逻辑判断是否应该合并。 ```delphi procedure TForm1.
DB
Grid
Eh1DrawColumnCell(Sender: TObject; const Canvas: TCanvas; ...
实现
db
grid
中添加checkbox
你可以使用系统提供的函数如Now、Date和Time来
获取
当前
的日期和时间,或者使用AddDays、AddMonths等方法来增加或减少日期。 5. **数据库操作** 当用户在
DB
Grid
中更改复选框状态时,你需要更新后台数据库中的相应...
db
grid
加checkbox的例子
然后,为`
DB
Grid
`的`OnDrawDataCell`事件编写处理程序,根据
当前
字段
值
绘制`CheckBox`。 2. **处理OnDrawDataCell事件**:在`OnDrawDataCell`事件中,我们需要检查
当前
绘制的单元格是否是我们要显示`CheckBox`的...
Delphi
5,927
社区成员
262,931
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章