加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用C#和asp.net将sql插入到访问数据库中时出现语法错误

发布时间:2020-12-16 02:01:22 所属栏目:百科 来源:网络整理
导读:我收到了错误 cmd.ExecuteNonQuery(); 这说 Syntax error in INSERT INTO statement 我认为我的查询应该是有效的,我不明白这个问题,而且我已经工作了好几个小时.这是正确的顺序,并围绕用户放置[]不适合我,将不胜感激. %@ Page Language ="C#" %%@ Import Nam
我收到了错误

cmd.ExecuteNonQuery();

这说

Syntax error in INSERT INTO statement

我认为我的查询应该是有效的,我不明白这个问题,而且我已经工作了好几个小时.这是正确的顺序,并围绕用户放置[]不适合我,将不胜感激.

<%@ Page Language ="C#" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>   
    <script runat="server">
    protected void Page_Load()
    {

            String username = Request.Form["username"];
            String email = Request.Form["email"];
            String password = Request.Form["password1"];
            var age = Request.Form["age"];
            String country = Request.Form["country"];
            String hobbie = Request.Form["skin"];
            String sql;

            sql = "INSERT INTO Users(UserName,Email,Password,Age,Country,Hobbie) VALUES('" + username + "','" + email + "','" + password + "'," + age + ",'" + country + "','" + skin + "')";

            String Path = Server.MapPath("App_Data/Users.accdb");
            String connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+Path;

            OleDbConnection conn = new OleDbConnection(connStr);
            conn.Open();

            OleDbCommand cmd = new OleDbCommand(sql,conn);
            cmd.ExecuteNonQuery();

            conn.Close();
    }

解决方法

PASSWORD是MS-Access的保留关键字.用方括号括起来

sql = "INSERT INTO Users(UserName,[Password] ....

但是,请更改该sql文本以使用参数化查询.此外,如果您能够使用实际值发送此命令,则查询仍然对Sql Injection漏洞开放,并且当您的输入字符串包含单引号时可能会出现解析问题

sql = @"INSERT INTO Users(UserName,[Password],Hobbie) 
           VALUES(?,?,?)";
   ....

   OleDbCommand cmd = new OleDbCommand(sql,conn);
   cmd.Parameters.AddWithValue("@p1",username);
   .... and so on for the other 5 parameters required by the query ....

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读