asp.net+access 插入记录错误

我有一个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 语句的语法错误。
请各位大虾帮帮忙!
最新回答
爱你,谁负了谁

2024-04-25 01:38:53

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中的关键字或特殊符号就容易出错。比如单引号,--等
最好写成存储过程,或者这种参数的形式
阴郁钢琴

2024-04-25 03:35:08

你的textbox前面的单引号和双引号我这里看上去都一样,有点怪我不知道你是不是这里写错了。还有就是不要用password,name这种名字作为数据库字段名。password是数据库里的保留字符所以这样会出错,一定要用就在前面外面加[]。像这样[password]
张秋沁

2024-04-25 05:45:25

你把这个 sql Response.Write(sql)一下 看看结果对不

再吧 这个 输出的结果 复制到 access的查询里面看看能不能正常执行