Delphi中的查询语句的问题 Select

有一段代码是为了检验在dbedit中提交的字段是否与DBGrid中的字段重复并且提交的字段不能为空代码如下if(DBedit2.text<>'')thenbeginwit... 有一段代码是为了检验在dbedit中提交的字段是否与DBGrid中的字段重复并且提交的字段不能为空

代码如下

if(DBedit2.text<>'')then
begin
with adoquery1 do begin
close;
sql.Clear;
sql.Add('select * from xsda where 姓名=' + dbedit2.text);
open;
end;
if adoquery1.RecordCount>0 then
begin
showmessage('该姓名已存在!');
end
else
begin
application.MessageBox ( '输入不能为空!','提示:',mb_ok);
end;
end;

当运行程序时到保存dbedit的数据时 报错 错误类型为 :XXX,标准表达式中数据类型不匹配,估计问题出在
sql.Add('select * from xsda where 姓名=' + dbedit2.text);
该句的 dbedit2.text 上 ,在xsda表中 姓名的字段类型为文本, 请问 我该如何修改?
能不能直接把代码 写好呢。。 我按照您汉语表达的写了一次 还是报错 数据库是access的
展开
 我来答
静水出明月
2010-12-03
知道答主
回答量:19
采纳率:0%
帮助的人:0
展开全部
这里出错了,
sql.Add('select * from xsda where 姓名=‘’‘ + dbedit2.text+’‘’‘);
注意引号的使用,少一个都不行的。
Edit.text 前后各三个引号,后者加第一处的单引号共四个。
格式
sql.add(单引号select * from xsda where 姓名=单引号 双引号 + dbedit2.text+双引号 单引号 单引号);
用文字表述可能更容易理解。
单引号和双引号都是配对存在的,此处的双引号是添加空格的意思,即两个单引号中间夹着空值,即空格。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-12-03
展开全部
应该这样:

if 条件 then
begin
  语句;
  if 条件
  then 语句
  else 语句
end;

原则:if之后必须有then,可以选择有else,但是else前面不能有分号

sql='select * from loginInfo where username=''+Edit1.Text+''';
应该修改为:
sql='select * from loginInfo where username="'+Edit1.Text+'"';
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kcxnvbdbd
2010-12-03 · TA获得超过523个赞
知道小有建树答主
回答量:885
采纳率:50%
帮助的人:617万
展开全部
sql.Add('select * from xsda where 姓名=''' + dbedit2.text + '''');
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式