asp.net+access 插入记录错误

我有一个ACCESS表"host",字段是id(自动编号),name(文本),password(文本),插入语句是:Stringstrcn="provider=micro... 我有一个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 语句的语法错误。
请各位大虾帮帮忙!
展开
 我来答
百度网友6eed2f8
2009-02-11 · TA获得超过5082个赞
知道大有可为答主
回答量:3423
采纳率:0%
帮助的人:3806万
展开全部
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中的关键字或特殊符号就容易出错。比如单引号,--等
最好写成存储过程,或者这种参数的形式
jx120633120
2009-02-11 · TA获得超过326个赞
知道小有建树答主
回答量:325
采纳率:0%
帮助的人:0
展开全部
你的textbox前面的单引号和双引号我这里看上去都一样,有点怪我不知道你是不是这里写错了。还有就是不要用password,name这种名字作为数据库字段名。password是数据库里的保留字符所以这样会出错,一定要用就在前面外面加[]。像这样[password]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
反方向2019
2009-02-11 · TA获得超过129个赞
知道小有建树答主
回答量:280
采纳率:0%
帮助的人:176万
展开全部
你把这个 sql Response.Write(sql)一下 看看结果对不

再吧 这个 输出的结果 复制到 access的查询里面看看能不能正常执行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式