procedure TfrmNewUser.Button1Click(Sender: TObject);
var
  newuser,pass:string;
begin
if Edit1.Text=''then
  begin
    ShowMessage('用户名不能为空');
  end
else
  begin
    newuser:='Edit1.Text';
    pass:='Edit2.Text';
    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('Insert 用户清单values('newuser','pass'));
    ADOQuery1.Open;
   endend;
我就想添加一个新用户到用户清单,谁知道能帮我改一下代码吗,我真的搞不明白了,谢谢啊!
那个Insert语句总有错误

解决方案 »

  1.   

    ADOQuery1.SQL.Add('Insert 用户清单values('newuser','pass'));newuser,pass 是变量,不应该那样写的格式不对,应该这样:ADOQuery1.SQL.Add('Insert 用户清单values('''+newuser+''','''+pass+'''));
      

  2.   

    而且你的表名怎么是汉字?汉字不知道会不会出问题, 而且,表名要跟 values 之间有空格,
    如果写连在一起,计算机就认为语法错误。
      

  3.   

    你引号使用错误
    你可以showMessage看看你的sql 语句是什么
      

  4.   

    newuser:='Edit1.Text';
    pass:='Edit2.Text';
    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('Insert 用户清单values('newuser','pass'));
    ADOQuery1.Open;
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    newuser:=Edit1.Text;
    pass:=Edit2.Text;//这里变量赋值不用加引号
    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('Insert into 表名 values('+newuser+' ,'+pass+' )';
    ADOQuery1.ExecSql;//这里用ExecSql,不能用open//into into 表名 values(列1,列2)//语法
      

  5.   

    Unterminated string 这就是insert那一行显示的错误
    各位还得再帮帮我。
      

  6.   

    Add('Insert into 表名 (用户名字段,用户密码字段) values('+newuser+' ,'+pass+' )';
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    建议这样写;
    with adoquery1 do begin
      Close;
      SQL.Clear;
      sql.Add('insert into 表名 (用户名字段,用户密码字段) values(:temp1,:temp2)');
      Parameters.ParamByName('temp1').Value:=Trim(Edit1.Text);
      Parameters.ParamByName('temp2').Value:=Trim(edit2.Text);
      ExecSql;
      Close;
    end;//end with
      

  7.   

    Thank you very much
    搞定了增加用户,谢谢你们啊。
    谢谢gxgyj(Jackson)