Отказывается делать ExecuteNonQuery: неправильный синтаксис рядом с '(' - PullRequest
1 голос
/ 03 января 2012

Я пытаюсь вставить данные в свою базу данных и выдает ошибку:

Неверный синтаксис рядом с '('.

Это мой код:

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 ();».

Кто-нибудь знает, что я сделал не так?

Спасибо!

Ответы [ 3 ]

8 голосов
/ 03 января 2012

вы сделали это:

INSERT INTO (GameID....

но должен сделать это:

INSERT INTO tablename (GameID....
3 голосов
/ 03 января 2012

В вашем операторе INSERT INTO отсутствует имя таблицы, в которую он должен быть вставлен.

2 голосов
/ 03 января 2012

Синтаксис вашей вставки в оператор неверен, поскольку вы не указываете, в какую таблицу вы вставляете.

Правильный синтаксис:

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

См .: http://www.w3schools.com/sql/sql_insert.asp для получения дополнительной информации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...