老师,请帮助吧,好急呵,关于用 delphi 中用ADOquery查询的问题

abcd_nonqq 2010-05-11 10:20:30
我想用ADOquery 进行查询,如下的语句不知错在那里,还有那里不完善?
Adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from 学生表 where 学号=:edit1.text');
adoquery1.Open;


错误提示:不正常的定义参数对象.
...全文
130 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
abcd_nonqq 2010-05-12
  • 打赏
  • 举报
回复
哥们谢谢了,用了13楼的sql ,给分40
abcd_nonqq 2010-05-11
  • 打赏
  • 举报
回复
我是通过 Adoquery1 连 datasource1 连Dbgrid1 的呀.
merrymin 2010-05-11
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 abcd_nonqq 的回复:]
13楼的老师,我是用delphi7 对Access 中的数据进行处理,用你的语句,没有出错,但查询不出存在的记录,
[/Quote]

应该不是查询不出记录,而是你显示数据的代码有误
abcd_nonqq 2010-05-11
  • 打赏
  • 举报
回复
13楼的老师,我是用delphi7 对Access 中的数据进行处理,用你的语句,没有出错,但查询不出存在的记录,
lipengpeng8188 2010-05-11
  • 打赏
  • 举报
回复
原来是Access啊,你不早说,这样写:
adoquery1.SQL.Add('select * from 学生表 where 学号 ='+''''+ trim(edit1.text) + '''');
merrymin 2010-05-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 tjianliang 的回复:]
adoquery1.SQL.Add('select * from 学生表 where 学号 = ' + QuotedStr('%' + Ttrim(edit1.text) + '%');
[/Quote]
亮剑兄手抖了!
另:'%'请问有何意?
merrymin 2010-05-11
  • 打赏
  • 举报
回复
ShowMessage(IntToStr(AdoQuery1.Fields.DataSet.RecordCount)),看看AdoQuery中查询出的记录条数是多少
mackzhaozhonggang 2010-05-11
  • 打赏
  • 举报
回复
adoquery1.SQL.Add('select * from 学生表 where 学号 ='" + edit1.text + "')";
亮剑_ 2010-05-11
  • 打赏
  • 举报
回复
adoquery1.SQL.Add('select * from 学生表 where 学号 = ' + QuotedStr('%' + Ttrim(edit1.text) + '%');
abcd_nonqq 2010-05-11
  • 打赏
  • 举报
回复
老师;你好,很感谢你,我的数据库是access 学号是文本型,
改成这个后,可以运行,不出错,但没结果,有记录,但查询不出来.
merrymin 2010-05-11
  • 打赏
  • 举报
回复
adoquery1.SQL.Add('select * from 学生表 where 学号 = QuotedStr(edit1.text)');也行
这样的写法你也不会因为引号太多而晕了!
merrymin 2010-05-11
  • 打赏
  • 举报
回复
adoquery1.SQL.Add('select * from 学生表 where 学号 = ''' + edit1.text + ''' ');
其中,每个单引号都是半角的!
4楼的adoquery1.SQL.Add('select * from 学生表 where 学号='" + edit1.text+"'' );明显有问题!
lipengpeng8188 2010-05-11
  • 打赏
  • 举报
回复
哥们,这样来:
先确定你数据库里面的学号字段是什么类型,我怀疑你字段是integer类型。那样写当然出错了。
如果是varchar类型,则为
adoquery1.SQL.Add('select * from 学生表 where 学号 = ''' + trim(edit1.text) + ''' ');
否则这样既可:
adoquery1.SQL.Add('select * from 学生表 where 学号 = ' +edit1.text+ ' ');
abcd_nonqq 2010-05-11
  • 打赏
  • 举报
回复
adoquery1.SQL.Add('select * from 学生表 where 学号='" + edit1.text+"'' );
也是这个错
[Error] sfbb.pas(67): Illegal character in input file: '"' ($22)
abcd_nonqq 2010-05-11
  • 打赏
  • 举报
回复
1楼的老师傅我按你的语句写了
出错
[Error] sfbb.pas(67): Illegal character in input file: '"' ($22)
merrymin 2010-05-11
  • 打赏
  • 举报
回复
不好意思,笔误了!
adoquery1.SQL.Add('select * from 学生表 where 学号 = ''' + edit1.text + ''' ');
merrymin 2010-05-11
  • 打赏
  • 举报
回复
adoquery1.SQL.Add('select * from 学生表 where 学号 = ''' + edit1.text''' ');

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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