为什么不行?在线等。。。。(20分)

  • 主题发起人 主题发起人 crazypc
  • 开始时间 开始时间
C

crazypc

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Edit2Change(Sender: TObject);
begin
with data.adoquery1 do
begin
data.adoquery1.Close;
data.adoquery1.SQL.Clear;
data.adoquery1.SQL.Add('select 厂商名 from G_cs ');
data.adoquery1.SQL.Add('where G_cs.厂商代码 =:fno');
data.adoquery1.Parameters.ParamByName('fno').Value :=edit2.text;
data.adoquery1.Open;
end;
label9.Caption:=data.ADOQuery1.Fields[1].Value;
end;
系统提示:lsit index out of bounds(1)?
为什么不行?
 
应该是从0开始的吧:
label9.Caption:=data.ADOQuery1.Fields[0].Value;
 
label9.Caption:=data.ADOQuery1.Fields[0].Value;
 
不行!!我的货号名称在表的第二个字段。。。
label9.Caption:=data.ADOQuery1.Fields[0].Value;
还是不行。。。。
 
label9.Caption:=data.ADOQuery1.Fieldbyname('长商名').asstring;
 
FieldByName('fieldName').AsString
 
>不行!!我的货号名称在表的第二个字段。。。
那你总要把你的货号名称选出来吧???
select 厂商名, 货号名称 from G_cs
然后再用label9.Caption:=data.ADOQuery1.Fields[1].Value;
 
data.ADOQuery1.FieldValue['厂商名'];
 
对不起!!应该把货号名改为厂商名 ,打错了!!真的对不起!!
谢谢!!可以了!!
把label9.Caption:=data.ADOQuery1.Fields[1].Value;改为
label9.Caption:=data.ADOQuery1.Fieldbyname('长商名').asstring;
就可以!!
那为什么label9.Caption:=data.ADOQuery1.Fields[1].Value 就不可以?
能不能说一下原因?
 
来迟了,select 后面才一个字段呀,所以fields的值最大只能为0
 
你选择的结果只有一列,是 Fields[0]
 
你查询的结果集为一,而该数应该为0
 
改为Fields[0]. 不行!!!
系统提示:invalid variant type conversion
 
难道没有人知道为什么不能用field[0]?
 
类型不匹配。
你改为:
label9.Caption:=data.ADOQuery1.Fields[0].AsString;
 
检查一下你的搜索成功了吗?有没有如你所想的结果字段
 
多人接受答案了。
 
后退
顶部