如何将DBGrid控件指针所在行的某个数值付给变量。(50分)

  • 主题发起人 主题发起人 wzxt
  • 开始时间 开始时间
W

wzxt

Unregistered / Unconfirmed
GUEST, unregistred user!

如何将DBGrid控件指针所在行的某个数值付给变量。
 
我用StringGrid,
x:=AllofRec.Col[1];
x:=AllofRec.Cell[列, 行]
 
DBGrid.DataSource.Table.FieldByName('*').AsString
 
请查阅我的提问——》OK!
 
同志:这是最基本的东东了,看了你是初学
看下面代码,其中table1可以换为Query1,
var
sTemp1, sTemp2 : string;
nTemp : integer;
begin

// Table1.open;
// Table1.first;
// Table1.next;
sTemp1 :=Table1.FieldByName('字段名').AsString;
sTemp2 :=Table1.Fields(1).AsString;
sTemp2 :=Table1.FieldByName('整型字段名').AsInteger;
end;


 
如字段为自动增加型因如何读取?
 
自动增加型只有在Post之后才产生.
 
同意楼上
 
不也是一样的读取嘛,真不知怎样回答你
如变量是integer 便有table1.fieldbyname('no').asstring;
........string ..............................asstring;
不多说了
 
其实简单的用其对应的数据集相应的字段的值就可以了
比如该DBGRID对应的数据集是ADOQUERY1,就是
x := AdoQuery1['FieldName'];
y := AdoQuery1['FieldName'];
 
xxxx := query1.fieldbyname['fieldname'].asstring
或者
xxxx := dbgrid1.Fields.AsString;
 
dbgrid也有fields属性,
var s:string;
s:=degrid.fields.asstring;
 
这么多方法都告诉你了,该结束了吧!
 
其实DBGRID的当前记录也是其对应的QUER或TABLE的当前记录,故以上各法均可,但
我更建议使用Table1.FieldByName('字段名').AsString,这可防止空值时出错,同时
该字段为数值型时,同样可用AsString;
 
请各位高手帮忙看看下面这段代码有和不妥之处,已运行旧出错。
其中
no为 Autoincrement 类型
procedure TForm1.Button2Click(Sender: TObject);
begin
with Query2.SQL do
begin
Clear;
Append ('DELETE from aa WHERE');
Append ('(no)=(:no)');
end;
with Query2 do begin
Unprepare;
ParamByName('no').Asinteger := dbgrid1.Fields[2].Asinteger;
Prepare;
ExecSQL;
end;
谢谢
 
不用加括号。
Append ('where no=:no');
 
不要对网格操作应该对数据集操作对网格操作的话你会后悔的!
 
接受答案了.
 
后退
顶部