2013-03-14 2 views
0

Для кода ниже я получаю ошибкуSQL ошибка синтаксиса ручная проверка

У вас ошибка с вашего синтаксиса SQL; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом с «Name», «Счет») VALUES («Cain», «0») в строке 1

private void btnSubmitScore_Click(object sender, EventArgs e) 
{ 
    string connStr = "server=bel.sunderland.ac.uk; " + 
        "database=bg30xw; " + 
        "uid=USERNAME; " + 
        "pwd=PASSWORD;"; 

    string query = "INSERT INTO highscore('Name','Score') VALUES (@Name, @Score);"; 

    using(MySqlConnection myconn = new MySqlConnection(connStr)) 
    { 
     Console.WriteLine(query); 
     MySqlCommand insertCommand = new MySqlCommand(query,myconn); 
     insertCommand.Parameters.AddWithValue("@Name",sName); 
     insertCommand.Parameters.AddWithValue("@Score",iTotalScore); 

     try 
     { 
      myconn.Open(); 
      insertCommand.ExecuteNonQuery(); 

     } 
     catch (MySqlException ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
     myconn.Close(); 
    } 

Ошибка показала в «messagebox.show (ex.message)»; когда я запускал программу. Я посмотрел на google, но большинство предложений касалось кавычек, я изменил и изменил их, но безрезультатно.

Благодаря

ответ

1

Используйте обратные кавычки, чтобы избежать колонки (и таблицы) имена, а не цитаты

INSERT INTO highscore(`Name`,`Score`) VALUES (@Name, @Score) 
+0

замечательный! огромное спасибо! я отвечу как ответ за 9 минут. еще раз спасибо. –

+0

извините, любая идея, как я мог бы вывести сообщение, когда результаты были добавлены в базу данных? –

+0

Добавить 'Messagebox.show()' после строки 'insertCommand.ExecuteNonQuery();' –

1

имена столбцов однословные не нужно экранировать (я не думаю, что MySQL позволяет это , но я могу ошибаться), поэтому это должно работать:

INSERT INTO highscore(Name,Score) VALUES (@Name, @Score); 

вы можете дать псевдоним столбца, используя пробелы при запуске select заявление, но я просто их избежать в целом.

Смежные вопросы