在Delphi7中如何查询SQL中的数据,用的是adoquery组件和DBEdit组件

beginwithADOQuery1dobeginClose;Sql.Clear;SQL.Add('select*fromxscj');ifDBEdit1.Text=''... begin
with ADOQuery1 do
begin
Close;
Sql.Clear;
SQL.Add('select * from xscj');
if DBEdit1.Text ='' then
begin
showmessage('请输入学号');
exit;
end
else
if DBEdit1.Text<>'' then
begin
SQL.Add('and xscj Like 学号') ;
DBEdit1.Text :=(fieldbyname('学号').asstring);
open;
end;
if DBEdit2.Text ='' then
begin
showmessage('请输入学期');
exit;
end;
if DBEdit2.Text<>'' then
begin
SQL.Add('and xscj Like 学期') ;
DBEdit2.Text :=(fieldbyname('学期').asstring);
open;
end;
我在写上以上代码后,DBEdit组件不能输入任何文字,去掉一个DBEdit组件就行,但是也只能输一次,即使能输入文字也不能实现查询,谢谢
我改啦,不过还是不能实现查询,怎么实现呢? 其中like后面的好想有错误我也改啦, 谢谢

我们课本上就是那样做的啊,有什么不正确的吗?
展开
 我来答
zjgzfs
2010-06-04 · TA获得超过428个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:483万
展开全部
看来楼主是没弄明白什么是数据感知组件。

数据感知组件有个特点:
如果设置数据感知组件的datasource与datafield属性,那么只要与datasource相关联的dataset一打开,数据感知组件就会自动获取相应的字段值(由datafield属性指定);反之,如果用户修改了数据感知组件中的字段值,那么,只要执行dataset.post; 就可以将用户的修改存回到数据库中。

如果你使用了数据感知组件(如:DBEdit),但又没有设置它的datasource与datafield属性,或者即使设置了,但与datasource相关联的dataset没有指定或没有打开,那么,你这个DBEdit中就无法输入数据!(你的毛病正在这里)

Delphi中所有“DB”开关的组件,都是数据感知组件。

所以,如果理解了上面我说的这些话,那么,只要将你程序中DBEdit改成普通的Edit就行了。
brapple
2010-06-05 · TA获得超过756个赞
知道小有建树答主
回答量:1127
采纳率:0%
帮助的人:849万
展开全部
很多书,写得挺垃圾的。
可以联系我一下。

用DELPHI开发,写不了多少代码的。
这个在用法上有问题。
我不太清楚你要实现的具体内容,
但我想这个需求,大我写5行代码。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wsqrock
2010-06-04 · 超过73用户采纳过TA的回答
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:192万
展开全部
DBEdit1.Text :=(fieldbyname('学号').asstring);
DBEdit2.Text :=(fieldbyname('学期').asstring);
你这两句是什么意思?
怎么都在Open之前就赋值了?Open之前是没有查询获取值的。

而且你也不应该用DBEdit来进行查询,用建议用Edit,DBEdit只要绑定到AdoQuery的Datasource就可以返回值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式