dunno1921 Ответов: 2

У вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера mysql, чтобы найти правильный синтаксис для использования рядом с "таблицей"


Итак, я хотел сделать простую регистрационную форму, где вы вводите те значения, которые перечислены ниже в коде.


private void button1_Click(object sender, EventArgs e)
        {
            DB db = new DB();

            MySqlCommand command = new MySqlCommand("INSERT INTO 'table' ('ime','prezime','username','lozinka') VALUES (@name, @surname,@usn,@loz)", db.getConnection());

            command.Parameters.Add("@name", MySqlDbType.VarChar).Value = textBox_Ime.Text;
            command.Parameters.Add("@surname", MySqlDbType.VarChar).Value = textBox_Prezime.Text;
            command.Parameters.Add("@usn", MySqlDbType.VarChar).Value = textBox_Username.Text;
            command.Parameters.Add("@loz", MySqlDbType.VarChar).Value = textBox_Lozinka.Text;

            db.openConnection();

            if(command.ExecuteNonQuery() == 1)
            {
                MessageBox.Show("Uspješno ste registrirani!");
            }
            else
            {
                MessageBox.Show("Pokušajte ponovno!");
            }

            db.closeConnection();

        }


Что я уже пробовал:

if(command.ExecuteNonQuery() == 1)


этот человек продолжает называть меня ошибкой заголовка вопроса и я не знаю почему потому что именно так я поместил имена столбцов в базу данных

2 Ответов

Рейтинг:
7

Richard Deeming

Вы используете одинарные кавычки (') для цитирования имен таблиц и столбцов. Вам нужно использовать обратные клещи (`) вместо.

MySqlCommand command = new MySqlCommand("INSERT INTO `table` (`ime`, `prezime`, `username`, `lozinka`) VALUES (@name, @surname, @usn, @loz)", db.getConnection());


Рейтинг:
19

OriginalGriff

Ричард абсолютно прав - но лучшее решение-не использовать имена, которые настолько "универсальны" - "таблица" - это зарезервированное слово, поэтому вам нужны обратные кавычки. Используйте имена, описывающие содержимое - возможно, "UserDetails", - и проблема исчезнет, а также облегчит понимание и использование всей вашей системы:

using (MySqlCommand command = new MySqlCommand("INSERT INTO UserDetails (ime, prezime, username , lozinka) VALUES (@name, @surname, @usn, @loz)", db.getConnection()))
   {
   ...