怎样从DBGrid中提取数据

lxmfll2000 2005-02-03 09:35:36
在查寻的时候。查寻的内容显示在DBGrid上。可不可以再从DBGrid里取数据。我试过了。可以取每个字段的第一个记录。但是不能取以下的数据。例如
姓名    编号   工资 
张三   001     8000
李四   002     4500
现在我可以取“工资”里的第一个数据8000。但我怎么也取不出来4500。请各位高手帮忙。多谢了!
...全文
188 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
samchoy 2005-02-15
  • 打赏
  • 举报
回复
查询排序:
SELECT 姓名, 工资 FROM 工资表 WHERE 姓名='张三' ORDER BY 工资 DESC // 逆序

计算总和:
SELECT 姓名, SUM(工资) AS 总工资 FROM 工资表 WHERE 姓名='张三'
lxmfll2000 2005-02-15
  • 打赏
  • 举报
回复
谢谢各位的回复。我是想得顺序得到 8000 4500 1400。而且姓名是同一个人。
姓名     工资 
张三     8000
张三     4500
张三 1400
然后把工资的总和算出来。
cq_newhand 2005-02-05
  • 打赏
  • 举报
回复
那是因为你的记录指针在 第一条记录上面,要取其它记录 你需把数据库记录指针移位
与DBGrid 没有关系
需要

Query1->Next();
......
就可以 取得 4500 了
milkwayhong 2005-02-04
  • 打赏
  • 举报
回复
Query1->FieldByName("工资")->AsInteger;AsString

用这种方法
icwin 2005-02-04
  • 打赏
  • 举报
回复
Query1->Fields->Fields[i]->AsInteger;AsString
也可以按这个
samchoy 2005-02-03
  • 打赏
  • 举报
回复
取数据与DBGrid没有关系,取的是数据集中的字段。假设查寻是Query1

1、按顺序取值
for (Query1->First(); !Query1->Eof; Query1->Next())
{
int gz = Query1->FieldByName("工资")->AsInteger;
Do Something ...
}

2、取指定“编号”对应的“工资”
AnsiString id = "001"; // 编号
TLocateOptions opt;
if (Query1->Locate("编号", id, opt))
{
int gz = Query1->FieldByName("工资")->AsInteger;
Do Something ...
}

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧