C # MySql Синтаксис команды вставки или обновления для формы опроса с 78 радиокнопками

0

У меня есть форма С# Win, которая содержит (среди прочего) всплывающее окно с опросом, содержащим 78 переключателей. В опросе есть кнопка отправки, которая вставляет данные в таблицу MySQL. Код за событием клика должен предусматривать обновление, а также вставку (поскольку люди могут заполнять опрос в несколько этапов). Проблема, с которой я столкнулась, заключается в том, что команда MySQL INSERT имеет синтаксическую проблему, так как при нажатии кнопки отправляется следующее исключение...

Ошибка синтаксиса SQL рядом с "в строке 1

В настоящее время мой оператор INSERT

MySqlCommand cmd = new MySqlCommand("INSERT INTO central_db.azt_image VALUES ('" + SerialCombo.Text + "', '" + Global.cust_dfe + "', '" + EngImgcomboBx.Text + "', '" + SerialCombo.Text + "', '" + AssetLocTxtBx.Text + "', '" + AssetNameTxtBx.Text + "', '" + (ImgL1Pend.Checked ? "1" : "0") + "', '" + (ImgL2Pend.Checked ? "1" : "0") + "', '" + (ImgL3Pend.Checked ? "1" : "0") + "', '" + (ImgL4Pend.Checked ? "1" : "0") + "', '" + (ImgL5Pend.Checked ? "1" : "0") + "', '" + (ImgL6Pend.Checked ? "1" : "0") + "', '" + (ImgL7Pend.Checked ? "1" : "0") + "', '" + (ImgL8Pend.Checked ? "1" : "0") + "', '" + (ImgL9Pend.Checked ? "1" : "0") + "', '" + (ImgL10Pend.Checked ? "1" : "0") + "', '" + (ImgL11Pend.Checked ? "1" : "0") + "', '" + (ImgL12Pend.Checked ? "1" : "0") + "', '" + (ImgL13Pend.Checked ? "1" : "0") + "', '" + (ImgL14Pend.Checked ? "1" : "0") + "', '" + (ImgL15Pend.Checked ? "1" : "0") + "', '" + (ImgL16Pend.Checked ? "1" : "0") + "', '" + (ImgL17Pend.Checked ? "1" : "0") + "', '" + (ImgL18Pend.Checked ? "1" : "0") + "', '" + (ImgL19Pend.Checked ? "1" : "0") + "', '" + (ImgL20Pend.Checked ? "1" : "0") + "', '" + (ImgL21Pend.Checked ? "1" : "0") + "', '" + (ImgL22Pend.Checked ? "1" : "0") + "', '" + (ImgL23Pend.Checked ? "1" : "0") + "', '" + (ImgL24Pend.Checked ? "1" : "0") + "', '" + (ImgL25Pend.Checked ? "1" : "0") + "', '" + (ImgL26Pend.Checked ? "1" : "0") + "', '" + (ImgL1NA.Checked ? "1" : "0") + "', '" + (ImgL2NA.Checked ? "1" : "0") + "', '" + (ImgL3NA.Checked ? "1" : "0") + "', '" + (ImgL4NA.Checked ? "1" : "0") + "', '" + (ImgL5NA.Checked ? "1" : "0") + "', '" + (ImgL6NA.Checked ? "1" : "0") + "', '" + (ImgL7NA.Checked ? "1" : "0") + "', '" + (ImgL8NA.Checked ? "1" : "0") + "', '" + (ImgL9NA.Checked ? "1" : "0") + "', '" + (ImgL10NA.Checked ? "1" : "0") + "', '" + (ImgL11NA.Checked ? "1" : "0") + "', '" + (ImgL12NA.Checked ? "1" : "0") + "', '" + (ImgL13NA.Checked ? "1" : "0") + "', '" + (ImgL14NA.Checked ? "1" : "0") + "', '" + (ImgL15NA.Checked ? "1" : "0") + "', '" + (ImgL16NA.Checked ? "1" : "0") + "', '" + (ImgL17NA.Checked ? "1" : "0") + "', '" + (ImgL18NA.Checked ? "1" : "0") + "', '" + (ImgL19NA.Checked ? "1" : "0") + "', '" + (ImgL20NA.Checked ? "1" : "0") + "', '" + (ImgL21NA.Checked ? "1" : "0") + "', '" + (ImgL22NA.Checked ? "1" : "0") + "', '" + (ImgL23NA.Checked ? "1" : "0") + "', '" + (ImgL24NA.Checked ? "1" : "0") + "', '" + (ImgL25NA.Checked ? "1" : "0") + "', '" + (ImgL26NA.Checked ? "1" : "0") + "', '" + (ImgL1Comp.Checked ? "1" : "0") + "', '" + (ImgL2Comp.Checked ? "1" : "0") + "', '" + (ImgL3Comp.Checked ? "1" : "0") + "', '" + (ImgL4Comp.Checked ? "1" : "0") + "', '" + (ImgL5Comp.Checked ? "1" : "0") + "', '" + (ImgL6Comp.Checked ? "1" : "0") + "', '" + (ImgL7Comp.Checked ? "1" : "0") + "', '" + (ImgL8Comp.Checked ? "1" : "0") + "', '" + (ImgL9Comp.Checked ? "1" : "0") + "', '" + (ImgL10Comp.Checked ? "1" : "0") + "', '" + (ImgL11Comp.Checked ? "1" : "0") + "', '" + (ImgL12Comp.Checked ? "1" : "0") + "', '" + (ImgL13Comp.Checked ? "1" : "0") + "', '" + (ImgL14Comp.Checked ? "1" : "0") + "', '" + (ImgL15Comp.Checked ? "1" : "0") + "', '" + (ImgL16Comp.Checked ? "1" : "0") + "', '" + (ImgL17Comp.Checked ? "1" : "0") + "', '" + (ImgL18Comp.Checked ? "1" : "0") + "', '" + (ImgL19Comp.Checked ? "1" : "0") + "', '" + (ImgL20Comp.Checked ? "1" : "0") + "', '" + (ImgL21Comp.Checked ? "1" : "0") + "', '" + (ImgL22Comp.Checked ? "1" : "0") + "', '" + (ImgL23Comp.Checked ? "1" : "0") + "', '" + (ImgL24Comp.Checked ? "1" : "0") + "', '" + (ImgL25Comp.Checked ? "1" : "0") + "', '" + (ImgL26Comp.Checked ? "1" : "0") + "', '" + ImgNoteTxt.Text + "') ON DUPLICATE KEY UPDATE;", conn);

Поскольку каждый INSERT или UPDATE всегда имеет значение для каждого столбца, я не объявлял заголовки столбцов. Я не эксперт по MySQL (далеко от него), и я не уверен, является ли проблема структурой или синтаксисом команды... Любая помощь будет получена, поскольку я боролся с этим в течение нескольких дней.

  • 0
    Вы всегда должны использовать параметризованные запросы, чтобы избежать SQL-инъекций и избавиться от ошибок такого рода.
  • 0
    Внедрение SQL в этом случае невозможно, поскольку все данные предварительно вставляются из другой таблицы на основе серийного номера, выбранного из поля со списком (текстовые поля доступны только для чтения). Однако параметризация оператора может помочь с ошибкой, поэтому я попробую ... большое спасибо.
Показать ещё 2 комментария
Теги:
syntax
command
insert-update

1 ответ

0

ОК, поэтому я нашел проблему с моей инструкцией INSERT... При использовании опции ON DUPLICATE KEY UPDATE после инструкции INSERT вы должны явно установить значения, которые вы хотите обновить, т.е.

INSERT INTO some_database.some_table ( key, first_name, last_name, current_score) VALUES ("123", "John", "Doe", 69) ON DUPLICATE KEY UPDATE current_score=69;

После того, как я явно описал столбцы, которые мне нужно обновить, когда найден дубликат ключа, инструкция INSERT работала так, как должна...

Спасибо за комментарии, сообщество StackOverflow просто потрясающе...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню