总是跳出update语法错误,我实在找不出来了,求各位大侠看一下
--------------------------------------------------------------------------------------------------
with FormLogin.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from b1 where username=:username and password=:password');
Parameters[0].Value := trim(EditUsr.Text);
Parameters[1].Value := trim(EditPwd.Text);
open;
if isempty then
begin
showmessage('请核对您的用户名和密码信息!');
end
else
begin
close;
sql.Clear;
sqlstr:='update b1 set password ='''+trim(EditSPwd.Text)+'''where username ='''+trim(EditUsr.Text)+'''';
sql.Text:=sqlstr;
Open;
ShowMessage('密码修改成功!');
end;
end;
--------------------------------------------------------------------------------------------------
with FormLogin.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select * from b1 where username=:username and password=:password');
Parameters[0].Value := trim(EditUsr.Text);
Parameters[1].Value := trim(EditPwd.Text);
open;
if isempty then
begin
showmessage('请核对您的用户名和密码信息!');
end
else
begin
close;
sql.Clear;
sqlstr:='update b1 set password ='''+trim(EditSPwd.Text)+'''where username ='''+trim(EditUsr.Text)+'''';
sql.Text:=sqlstr;
Open;
ShowMessage('密码修改成功!');
end;
end;
password后面加个空格试试
再就是有可能password关键字的原因,不过记不住究竟是password还是Password是关键字了,改成passwords试试
sqlstr:='update b1 set password ='''+trim(EditSPwd.Text)+''' where username ='''+trim(EditUsr.Text)+'''';
sql.Text:=sqlstr;
execsql;
ShowMessage('密码修改成功!');
end;
...
sql.Text:=sqlstr;
先把下面的语句"execsql;"注释掉,然后加一个memo控件,并增加语句:memo1.lines.add(sqlstr);
//execsql;
ShowMessage('密码修改成功!');
end; 执行后看memo中的内容,并复制到你sql server中验证即可查明原因.
begin
close;
sql.Clear;
sql.Add('select * from b1 where username=:username and password=:password');
Parameters[0].Value := trim(EditUsr.Text);
Parameters[1].Value := trim(EditPwd.Text);
open;
if isempty then
begin
showmessage('请核对您的用户名和密码信息!');
end
else
begin
close;
sql.Clear;
sqlstr:='update b1 set password ='''+trim(EditSPwd.Text)+'''where username ='''+trim(EditUsr.Text)+'''';
sql.Text:=sqlstr;
Open; //这里错拉 用execsql
ShowMessage('密码修改成功!');
end;
end;
begin
close;
sql.Clear;
sql.Add('select * from b1 where username=:username and password=:password');
Parameters[0].Value := trim(EditUsr.Text);
Parameters[1].Value := trim(EditPwd.Text);
open;
if isempty then
begin
showmessage('请核对您的用户名和密码信息!');
end
else
begin
close;
sql.Clear;
sqlstr:='update b1 set password ='''+trim(EditSPwd.Text)+'''where username ='''+trim(EditUsr.Text)+'''';
sql.Text:=sqlstr;
execsql;
ShowMessage('密码修改成功!');
end;
end;
sql.Text := Format('update [b1] set [password]="%s" where [username]="%s"',[EditPsw.Text, EditUser.Text]);
sql.ExecSql;另外,记得检查输入,如果EditPsw.Text和EditUser.Text中有"等字符时也不行!!!
begin
close;
sql.Clear;
sql.Add('select * from b1 where username=:username and password=:password');
Parameters[0].Value := trim(EditUsr.Text);
Parameters[1].Value := trim(EditPwd.Text);
open;
if isempty then
begin
showmessage('请核对您的用户名和密码信息!');
end
else
begin
close;
sql.Clear;
sqlstr:='update b1 set [password] ='''+trim(EditSPwd.Text)+'''where [username] ='''+trim(EditUsr.Text)+'''';
sql.Text:=sqlstr;
ExecSql;
ShowMessage('密码修改成功!');
end;
end;
为什么要这么写:[password],[username]转义关键字?