有谁能解决这个问题吗?

dlp826 2003-10-20 04:25:42
在DBGRID中,知道了行号和字段名的情况下怎样去取对应原字段值?
...全文
37 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
angle097113 2003-10-21
  • 打赏
  • 举报
回复
你是什么错误怎么不这里就没有事情呢?
把错误提示贴出来
angle097113 2003-10-21
  • 打赏
  • 举报
回复
首先你调试看看获得的行号的正确吗?
dlp826 2003-10-21
  • 打赏
  • 举报
回复
angle097113(深思不解):我试过了,还是不行,下面是我的代码,麻烦您看看,不胜感激:
procedure TForm1.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
RowIndex,ColumnIndex:Integer;
begin
RowIndex:=DBGrid1.MouseCoord(X,Y).Y-1;
ColumnIndex:=DBGrid1.MouseCoord(X,Y).X-1;//根据 ColumnIndex 可得知字段名:
if (columnindex>=0) and (rowindex>=0) and (columnindex<=dbgrid1.Columns.Count) then
begin
DBGrid1.DataSource.DataSet.RecNo:=rowindex;
// table1.RecNo:= rowindex;
//table1.DataSource.DataSet.RecNo:=rowindex;
edit1.Text:=dbgrid1.DataSource.DataSet.fieldbyname(dbgrid1.Columns[ColumnIndex].FieldName).AsString;
// edit1.Text :=dbgrid1.Columns[ColumnIndex].FieldName ;
end;
end;
angle097113 2003-10-20
  • 打赏
  • 举报
回复
DBGrid.DataSource.DataSet.RecNo := 行号;
变量 := DBGrid.DataSource.DataSet.FieldByName('字段名称').AsString;

没有问题
guolvguolv 2003-10-20
  • 打赏
  • 举报
回复
如果你不想造成这个表光标的移动,可以再建一个表在第二个表中取数据,不过好象太浪费
dlp826 2003-10-20
  • 打赏
  • 举报
回复
请教aiirii(aiirii) :我不想先定位,造位光标的移动,在某些情况下不友好.有办法吗?
dlp826 2003-10-20
  • 打赏
  • 举报
回复
guolvguolv(guolvguolv) :谢谢你,但table1.fieldbyname('sdfadsf').asstring取得是当前行的数据,我要的是指定行的数据,但我不想进行先选择再取.
aiirii 2003-10-20
  • 打赏
  • 举报
回复
通過行號 定位到該記錄, 直接讀該 dbgrid 連接的 table!!
guolvguolv 2003-10-20
  • 打赏
  • 举报
回复
dbgride是通过DATASOURCE 和TABLE OR QUERRY相连
只要清楚是和什么东西相连就可以取出了
table1.fieldbyname('sdfadsf').asstring
tiger19760407 2003-10-20
  • 打赏
  • 举报
回复
我不清楚你所问的问题,此行号和对应的记录有什么关系,或者说此数据表对什么字段进行了排序?
dlp826 2003-10-20
  • 打赏
  • 举报
回复
错了一个字,应为:在DBGRID中,知道了行号和字段名的情况下怎样去取对应的字段值?

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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