DBGrid中添加序号列

solarabc 2014-10-29 10:46:34
本人在C++Builder中用ADOQuery、DataSource和DBGrid连接数据库,执行了下面操作
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("select * from xs ");
ADOQuery1->Open();
为了用户方便,现在需要在DBGrid的最左侧添加一个序号列,按顺序显示查询出的结果集,如
序号 姓名 年龄
1 小明 2
2 小红 3
3 小花 5
..............
在查询的表中并没有序号这个字段,只想在DBGrid中添加序号这个字段,而不对表结构做修改

...全文
391 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xjq2003 2014-10-29
  • 打赏
  • 举报
回复
ADOQuery 里面可以添加一个序号字段
缘中人 2014-10-29
  • 打赏
  • 举报
回复
C++BUILDER也可以有第三方组件
solarabc 2014-10-29
  • 打赏
  • 举报
回复
大哥,我用的是C++BUILDER不是DEPHI!你有QQ吗?985742643加我,详聊
缘中人 2014-10-29
  • 打赏
  • 举报
回复
用第三方组件 GridEH,自带此功能
xjq2003 2014-10-29
  • 打赏
  • 举报
回复
在adoquery中添加一个feilds,然后再它的onCalcFields事件中写代码


//---------------------------------------------------------------------------
int i=1;

void __fastcall TForm1::ADOQuery1CalcFields(TDataSet *DataSet)
{
ADOQuery1xuhao->AsInteger=i++;
}
//---------------------------------------------------------------------------


成功了
xjq2003 2014-10-29
  • 打赏
  • 举报
回复
添加的xuhao类型 选择calculated 别选择data; int i=1; void __fastcall TForm1::DBGrid1DrawColumnCell(TObject *Sender, const TRect &Rect, int DataCol, TColumn *Column, TGridDrawState State) { // DBGrid1->DataSource->DataSet->FieldByName("xuhao")->AsInteger=i++; } //---------------------------------------------------------------------------
solarabc 2014-10-29
  • 打赏
  • 举报
回复
ADOQuery1->FieldByName("xuhao")->AsInteger=i++; 这句话里用的xuhao是我查询的表中的字段吗? 你加我QQ吧,上面有我号!
solarabc 2014-10-29
  • 打赏
  • 举报
回复
我是这么做的啊,可是还是报错!你qq多少,我加上你再向你请教吧!
xjq2003 2014-10-29
  • 打赏
  • 举报
回复
代码可以在dbgrid的DrawColumnCell里面写,
void __fastcall TForm1::DBGrid1DrawColumnCell(TObject *Sender,
const TRect &Rect, int DataCol, TColumn *Column,
TGridDrawState State)
{
//
}
xjq2003 2014-10-29
  • 打赏
  • 举报
回复
solarabc 2014-10-29
  • 打赏
  • 举报
回复
怎么又报这样的错误了呢?
我是这么做的,按照你说的,在ADOQuery 的fields 右键new field,name为xuhao,type为integer ,然后把这段代码放到.cpp里
xjq2003 2014-10-29
  • 打赏
  • 举报
回复
ADOQuery 的fields 右键new field 查询时在ADOQuery的CalcFields事件中 int i=0; void __fastcall TForm1::ADOQuery1CalcFields(TDataSet *DataSet) { ADOQuery1->FieldByName("xuhao")->AsInteger=i++; }
solarabc 2014-10-29
  • 打赏
  • 举报
回复
你能说的详细点吗?举个例子之类的也行,这样泛泛的说一点价值也没有

1,178

社区成员

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

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