【问题标题】:Refuses to make ExecuteNonQuery : Incorrect syntax near '('拒绝执行 ExecuteNonQuery:'(' 附近的语法不正确
【发布时间】:2012-01-03 16:56:46
【问题描述】:

我试图将数据插入我的数据库,它给了我一个错误:

'(' 附近的语法不正确。

这是我的代码:

string username = Session["Session"].ToString();

            con = new SqlConnection("Data Source=MICROSOF-58B8A5\\SQL_SERVER_R2;Initial Catalog=Daniel;Integrated Security=True");
            con.Open();

            string knowWhichOne = "SELECT ID FROM Users WHERE Username='" + UserOrGuest.Text + "'";

            SqlCommand comm = new SqlCommand(knowWhichOne, con);
            int userID = (Int32)comm.ExecuteScalar();

            knowWhichOne = "SELECT ClassID FROM Users WHERE Username='" + UserOrGuest.Text + "'";

            comm = new SqlCommand(knowWhichOne, con);
            int classID = (Int32)comm.ExecuteScalar();

            knowWhichOne = "SELECT SchoolID FROM Users WHERE Username='"+UserOrGuest.Text + "'";

            comm = new SqlCommand(knowWhichOne, con);
            int schoolID = (Int32)comm.ExecuteScalar();

            if (RadioWords.Checked == true)
            {
                 game = 1;
            }
            else
            {
                 game = 2;
            }


            string sqlqueryString = "INSERT INTO (GameID, UserID, LengthOfArray, NumberOfErrors, ClassID, SchoolID) VALUES (@GameID, @UserID, @LengthOfArray, @NumberOfErrors, @ClassID, @SchoolID)";

            SqlCommand commandquery = new SqlCommand(sqlqueryString, con);

            commandquery.Parameters.AddWithValue("GameID", game);
            commandquery.Parameters.AddWithValue("UserID", userID);
            commandquery.Parameters.AddWithValue("LengthOfArray", HowMany.Text);
            commandquery.Parameters.AddWithValue("NumberOfErrors", 0);
            commandquery.Parameters.AddWithValue("ClassID", classID);
            commandquery.Parameters.AddWithValue("SchoolID", schoolID);

            commandquery.ExecuteNonQuery();
            con.Close();

我在调试模式下运行它,它接受所有内容,直到“ExecuteNonQuery();”行。

有人知道我做错了什么吗?

谢谢!

【问题讨论】:

  • 您的代码受到 SQL 注入的影响。请为您的 SELECT 使用参数化查询。

标签: asp.net sql-server database


【解决方案1】:

你这样做了:

INSERT INTO (GameID....

但应该这样做:

INSERT INTO tablename (GameID....

【讨论】:

    【解决方案2】:

    您的 INSERT INTO 语句缺少应该插入的表的名称。

    【讨论】:

      【解决方案3】:

      您的 insert into 语句的语法不正确,因为您没有指定要插入哪个表。

      正确的语法是

      INSERT INTO table_name (column1, column2, column3,...)
       VALUES (value1, value2, value3,...)
      

      请参阅:http://www.w3schools.com/sql/sql_insert.asp 了解更多信息

      【讨论】:

        猜你喜欢
        • 2014-06-14
        • 2014-11-29
        • 2015-12-12
        • 2013-12-16
        • 1970-01-01
        • 2018-08-14
        • 2011-03-11
        • 2014-02-16
        • 2017-01-11
        相关资源
        最近更新 更多