修改数据 怎么不行呢?(50分)

  • 主题发起人 主题发起人 幸福人生1
  • 开始时间 开始时间

幸福人生1

Unregistered / Unconfirmed
GUEST, unregistred user!
我想用adoquery 来修access改数据库中的数据,但老是出错 ,谁能省事点给个代码 参考一下行吗?我的修改的代码如下:
a:='update 登陆 set password= '''+ edit2.text+''' where username=''bobo''';
adoquery1.Open;
adoquery1.Active;
adoquery1.Edit ;
adoquery1.SQL.Add(a);
adoquery1.Post;
adoquery1.ExecSQL;
showmessage('修改成功');
用的是dbedit,目的是想用dbedit的值来修改数据库中相应的值
谁能帮一下吗?
 
会不会是关键字的问题,把password和username用[]包围起来
 
这个可以改
with ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add('select * from userinfo where userName = ''bobo''');
Open;
Edit;
FieldByName('password').AsString := Edit1.Text;
Post;
end;
这个也可以
var
S: string;
begin
S := 'update userinfo set userNum = '''+ Edit1.Text+ ''' where userName = ''bobo''';
with ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add(S);
ExecSQL;
ShowMessage('更新成功!');
end;
end;
 
adoquery1.close;
a:='update 登陆 set password= '''+ edit2.text+''' where username=''bobo''';
adoquery1.SQL.Add(a);
adoquery1.ExecSQL;
showmessage('修改成功');

不用那么麻烦
 
var a:string;
a:='update 登陆 set password= '''+ edit2.text+''' where username=''bobo''';
adoquery1.close;
adoquery1.sql.clear;
adoquery1.SQL.Add(a);
adoquery1.ExecSQL;
showmessage('修改成功');

不要用DBEDIT,直接用edit
 
a:='update 登陆 set password= '''+ edit2.text+''' where username=''bobo''';
adoquery1.Open;
adoquery1.Active;//这个是多余的,可以不要。
adoquery1.Edit ;
adoquery1.SQL.Add(a);
adoquery1.Post;//这个是多余的,也可以不要。
adoquery1.ExecSQL;
showmessage('修改成功');
上面方案都行的。
 
to:cdj000
你的这个代码可以实现修改,
with ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add('select * from userinfo where userName = ''bobo''');
Open;
Edit;
FieldByName('password').AsString := Edit1.Text;
Post;
end;
但是你的这一个却不能修改,提示说“update 语句的语法错误”,我单步执行看了一下,发现
在执行时,bobo的前面是一个单引号,而后面是两个单引号,这是怎么回事呢?
关于那几个引号,我老是弄不对,这次更迷茫了,恳求你能再帮忙看一 下是那出问题了
var
S: string;
begin
S := 'update userinfo set userNum = '''+ Edit1.Text+ ''' where userName = ''bobo''';
with ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add(S);
ExecSQL;
ShowMessage('更新成功!');
end;
end;

其他几个朋友的代码也是一样的错误,难道说是我的delphi出问题了
 
你可以到
http://www.delphifans.com/infoview/Article_578.html
学习一下引号的用法
好运
 
var a:string;
a:='update userinfo set password= '+quotedstr(trim(edit2.text))+' where username='+quotedstr('bobo');
with adoquery1 do
begin
close;
sql.clear;
SQL.text:=a;
ExecSQL;
end;
showmessage('修改成功');
 
wangmao朋友的也不行啊,快崩溃了,提示说“update语句语法错误”单步执行察看发现还是bobo的前面是一个单引号,而后面是两个单引号,这是怎么回事呢?
 
不会吧
刚才才测试了一点问题都没有
还有你仔细看是否是跟我用的一样,因为我用的是quotedstr(s),其中s 是string,从来没有报错,如果用单引号的方法,往往会因为加的引号不正确而出现错误
 
我用的上面写的语句,在edit2中输入eieidfgld,单步运行后,得到a的字符串为如下
'update userinfo set password= 'eieidfgld' where username='bobo''
然后就通过了
 
我也建议你在sql语句中用quotedstr,不要去用那些引号
更好的方式是用format,任何类型都不用去考虑。
 
谢谢大家 , 在大家的帮助下我已经搞定了,呵呵
 
上次忘了散分了 不好意思
 

Similar threads

D
回复
0
查看
895
DelphiTeacher的专栏
D
D
回复
0
查看
862
DelphiTeacher的专栏
D
D
回复
0
查看
812
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部