adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('update employee set password= '+char(39)+trim(edit2.Text)+char(39)+' where emp_no= '+char(39)+s_bh+char(39)');
adoquery1.execsql;
一执行就说update语句语法错误,但是即使是改成
adoquery1.SQL.Add('update employee set password='''+'321'+''' where emp_no='''+'0001'+'''');
一样是语法错误
之前使用
adoquery1.close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select emp_name from employee where emp_no='+char(39)+trim(edit1.Text)+char(39));
adoquery1.Open;
没问题,能取出数据
请问是什么原因,怎样解决?

解决方案 »

  1.   

    好像不能这样吧.
    你的Parameters.ParamByName语句呢?
    adoquery1.SQL.Add('update employee set password= '+char(39)+trim(edit2.Text)+char(39)+' where emp_no= :z');
    adoquery1.ParamByName('z').AsString:=char(39)+s_bh+char(39);
    不知道这样行不行,我也是个才学了几天的菜鸟.
      

  2.   

    这个是你的SQL Server语句没有写对,建议如下:
    adoquery1.SQL.Text:='update employee set password='+#39+'321'+#39+' where   emp_no='+#39+'0001'+#39;
      

  3.   

    我用的access数据库而已
    还有#39和char(39)都是指单引号
    即使改成这样,还是一样的错误
      

  4.   

    而且现在发现把update语句改成insert语句也是一样报语法错误,但是就sql语句来说是没错,难道ado里写sql语句跟普通不一样?!
      

  5.   

    大量信息http://weijian.vip.sina.com
      

  6.   

    把你的password这个字段改个名字,改成pword,password可能是access的关键字,我试了一下,改了就可以了!
      

  7.   

    建议如下写:
    adoquery1.Close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Add('Update Employee Set [password] = ' + QuotedStr(edit2.Text));
    adoquery.SQL.Add('where emp_no= ' + QuotedStr(s_bh);
    adoquery1.execsql;如果Access表中有year,month之类的字段,在写SQL语句时
    要加上[]符号!!!
    祝好运!!!随便检查一下ADOQuery1的ConnectiongString可有设置!!!