delphi insert into 语句老是出错,改了N遍了,无法完成添加操作?

窗体上放了个ADOConnection1和ADOQuery1,确定按钮的单击事件代码如下:
With ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('insert into admin(username,password) values('+edit1.text+','+edit2.text+')');
ExecSQL;
end;

第1个回答  2011-07-16
出错?还是无法完成添加?这是两个概念。

'insert into admin(username,password) values('+edit1.text+','+edit2.text+')' 错了!!!
应该是
'insert into admin(username,password) values('''+edit1.text+''','''+edit2.text+''')'

知道问题所在了?
第2个回答  2011-07-17
'insert into admin(username,password) values('+edit1.text+','+edit2.text+')' 错了!!!
应该是
'insert into admin(username,password) values('''+edit1.text+''','''+edit2.text+''')'
'''为3个'
第3个回答  2011-07-17
缺少单引号,可改成
With ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('insert into admin(username,password) values('+QuotedStr(edit1.text)+','+QuotedStr(edit2.text)+')');
ExecSQL;
end;

不过最好还是采用参数的方式来写
With ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('insert into admin(username,password) values(:username,:password)');
Parameters.ParamValues['username'] := edit1.text;
Parameters.ParamValues['password'] := edit2.text;
Prepared:=True;
ExecSQL;
end;
第4个回答  2011-07-15
从语法上看没错,如果出错,可能是数据库访问上面的,你把错误提示说下本回答被提问者采纳
第5个回答  2011-07-16
with ADOQuery2 do
begin
Close;
SQL.Clear;
SQL.Add('insert into 分析结果 (报表时间,指标名称,指标值)');
SQL.Add('values (:p1,:p2,:p3)');//此处注意是 values不是value
Prepared := True;
Parameters.ParamByName('p1').Value:=combobox2.Text;
Parameters.ParamByName('p2').Value:=tabsheet4.Caption;
Parameters.ParamByName('p3').Value:=edit18.Text;
ExecSQL;

end;