我有一个ACCESS表"host",字段是id(自动编号),name(文本),password(文本),插入语句是:String strcn = "provider=microsoft.jet.oledb.4.0;data source="+Server.MapPath("database/jzwldb.mdb"); OleDbConnection cn = new OleDbConnection(strcn); cn.Open(); String sql = "insert into host(name,password) values('"+new_name.Text.Trim()+"','"+pw1.Text.Trim()+"')"; OleDbCommand olecmd = new OleDbCommand(); olecmd.Connection = cn; olecmd.CommandText = sql; olecmd.ExecuteNonQuery();提示:INSERT INTO 语句的语法错误。请各位大虾帮帮忙!
String sql = "insert into [host]([name],[password]) values(@name,@pass)"; olecmd.Parameters.AddWithValue("@name", new_name.Text.Trim()); olecmd.Parameters.AddWithValue("@pass", pw1.Text.Trim()); 用这个试试最好不要拼接sql,这样如果字符串中出现了sql中的关键字或特殊符号就容易出错。比如单引号,--等最好写成存储过程,或者这种参数的形式
你的textbox前面的单引号和双引号我这里看上去都一样,有点怪我不知道你是不是这里写错了。还有就是不要用password,name这种名字作为数据库字段名。password是数据库里的保留字符所以这样会出错,一定要用就在前面外面加[]。像这样[password]