为什么delphi总是报错,adoquery1:field '家庭地址'not found? 可以运行的,但是操作都不成功

procedureTForm5.SpeedButton1Click(Sender:TObject);varsqlstr:string;beginsqlstr:='sele... procedure TForm5.SpeedButton1Click(Sender: TObject);
var sqlstr:string;
begin
sqlstr:='select 学号 from change where 学号='+quotedstr(trim(edit1.Text));
adoquery1.Close;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add(sqlstr);
adoquery1.Open;
if trim(edit1.Text)=trim(adoquery1.fieldbyname('学号').AsString) then
begin
ADOQuery1.Edit;
ADOQuery1.FieldByName('变动时间').AsDateTime :=self.DateTimePicker1.DateTime ;
ADOQuery1.Post;
showmessage('保存成功!');
end;
end;
展开
 我来答
stzxx
2011-09-08 · TA获得超过129个赞
知道小有建树答主
回答量:383
采纳率:0%
帮助的人:143万
展开全部
我在想这个个错误是不是这代代码报出来的?如果是,有可能是因为你某一个控件连接着adouqyer1,而在你没执行这段代码时,控件上显示着数据,而且这个控件指向了字段“家庭地址”
当你执行open的时候就报上面的错误了;存在可能有:
1.dbgrid设置了固定列
2.dbedit之类的控件绑定了"家庭地址“列
liu55721
2011-09-09 · TA获得超过922个赞
知道大有可为答主
回答量:1861
采纳率:100%
帮助的人:875万
展开全部
'select 学号 from change where 学号='+quotedstr(trim(edit1.Text));语句中并不包含"变动时间"字段,什么去保存ADOQuery1.FieldByName('变动时间').AsDateTime :=self.DateTimePicker1.DateTime ;呢?
经过 adoquery1.SQL.Add(sqlstr);语句之后,ADOQuery1中只有"学号"一个字段,对其它字段操作都是不可以的.
把这一句改一下:
sqlstr:='select 学号 from change where 学号='+quotedstr(trim(edit1.Text));
改为sqlstr:='select 学号,变动时间,家庭住址 from change where 学号='+quotedstr(trim(edit1.Text));
这个判断也可以不要
if trim(edit1.Text)=trim(adoquery1.fieldbyname('学号').AsString) then
因为已经有:where 学号='+quotedstr(trim(edit1.Text));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pabc53
2011-09-10 · 超过11用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:27.4万
展开全部
liu55721说的对,也可将'select 学号 from change .....' 改为'select * from change ......'。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式