Я создал базу данных MySql и форму графического интерфейса Windows C # с полями текстового поля и средством выбора даты для заполнения таблицы с именем «задание» в моей базе данных.
Я прочитал несколько сообщений на этом сайте о важности использования подготовленных операторов для предотвращения атак sql-инъекций и попытался использовать эту функцию безопасности в своем коде. Однако это не работает. Я веб-дизайнер, но очень новичок в программировании. Я пробовал разные варианты кода, команда вставки все равно не работает. Примеры, которые я нашел в этой форме, включают использование подготовленных операторов с PHP, что я не использую.
Я получаю следующее сообщение об ошибке: У вас есть ошибка в синтаксисе SQL; проверьте руководство или версию вашего сервера MySQL, чтобы найти правильный синтаксис для использования рядом с 'jobTitle, this.dateTimePickerJobLastUpdated') 'в строке 1
Кто-нибудь знает, что я делаю не так и как это исправить?
Это инструкция MySQL для таблицы.
СОЗДАТЬ задание ТАБЛИЦА (
job_code VARCHAR(6) NOT NULL DEFAULT '',
job_title VARCHAR(30) NOT NULL DEFAULT '',
job_last_update DATE NOT NULL,
PRIMARY KEY (job_code)
) ДВИГАТЕЛЬ = InnoDB CHARSET = utf8;
И это мой C # для обработчика событий, который сохранит запись данных из формы Windows в базу данных.
private void btnSaveJobsTable_Click (объект-отправитель, EventArgs e) {
String myConnection = @"server=localhost; database=beautyshopdb; username=$$$$; password=$$$$$$";
MySqlConnection Connect = null;
try
{
Connect = new MySqlConnection(myConnection);
Connect.Open(); //open the connection
//This is the mysql command that we will query into the db.
//It uses Prepared statements and the Placeholder is @name.
//Using prepared statements is faster and secure.
String insertQuery = "INSERT INTO beautyshopdb(job) VALUES(@jobCode, @)jobTitle, @lastUpdated)";
MySqlCommand cmdInsertJobsToDataBase = new MySqlCommand(insertQuery, Connect);
cmdInsertJobsToDataBase.Prepare();
//we will bound a value to the placeholder
cmdInsertJobsToDataBase.Parameters.AddWithValue("@jobCode", "this.txtEnterJobCode.Text");
cmdInsertJobsToDataBase.Parameters.AddWithValue("@jobTitle", "this.txtEnterJobTitle.Text");
cmdInsertJobsToDataBase.Parameters.AddWithValue("@lastUpdated", "this.dateTimePickerJobLastUpdated");
cmdInsertJobsToDataBase.ExecuteNonQuery(); //execute the mysql command
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
if (Connect != null)
{
Connect.Close(); //close the connection
}
}
}
Спасибо!