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 语句的语法错误。
请各位大虾帮帮忙! 展开
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中的关键字或特殊符号就容易出错。比如单引号,--等
最好写成存储过程,或者这种参数的形式
olecmd.Parameters.AddWithValue("@name", new_name.Text.Trim());
olecmd.Parameters.AddWithValue("@pass", pw1.Text.Trim());
用这个试试
最好不要拼接sql,这样如果字符串中出现了sql中的关键字或特殊符号就容易出错。比如单引号,--等
最好写成存储过程,或者这种参数的形式
展开全部
你的textbox前面的单引号和双引号我这里看上去都一样,有点怪我不知道你是不是这里写错了。还有就是不要用password,name这种名字作为数据库字段名。password是数据库里的保留字符所以这样会出错,一定要用就在前面外面加[]。像这样[password]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把这个 sql Response.Write(sql)一下 看看结果对不
再吧 这个 输出的结果 复制到 access的查询里面看看能不能正常执行
再吧 这个 输出的结果 复制到 access的查询里面看看能不能正常执行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询