Проблемы с удалением строк из выбранного Datagridview в базе данных MySQL

Я не могу обновить базу данных MySQL после удаления выбранной строки из DataGridView, При запуске ExecuteNonQuery()Я получаю сообщение об ошибке:

System.Invalid.Operation.Exception: соединение должно быть действительным и открытым.

Однако я сделал правильное соединение. Все еще у меня проблема.

Мой код ниже:

private: System::Void button9_Click(System::Object^  sender, System::EventArgs^  e)
{
String^ constring = L"datasource=localhost;port=3306;username=****;password=********";
MySqlConnection^ conDataBase = gcnew MySqlConnection(constring);
conDataBase->Open();
try
{
if (MessageBox::Show("Sure you wanna delete?", "Warning", MessageBoxButtons::YesNo) == System::Windows::Forms::DialogResult::Yes)
{
for each(DataGridViewCell^ oneCell in dataGridView1->SelectedCells)
{
if (oneCell->Selected) {
dataGridView1->Rows->RemoveAt(oneCell->RowIndex);
MySqlCommand^ cmdDataBase1 = gcnew MySqlCommand("Delete from Dinslaken_DB.Configuration where Memory=" + dataGridView1->CurrentRow->Index +"");
cmdDataBase1->ExecuteNonQuery();
//sda->Update(dbdataset);
}
}
}
}
catch (Exception^ex)
{
MessageBox::Show(ex->ToString());
}
}

0

Решение

Вы создали объект команды

MySqlCommand^ cmdDataBase1 = gcnew MySqlCommand("Delete from Dinslaken_DB.Configuration where Memory=" + dataGridView1->CurrentRow->Index +"");

но вы не установили его свойство команды. Скорее всего, вторым аргументом в вышеприведенном конструкторе команд должно быть соединение. Проверь это.

Итак, ваш командный конструктор должен быть:

MySqlCommand^ cmdDataBase1 = gcnew MySqlCommand("Delete from Dinslaken_DB.Configuration where Memory=" + dataGridView1->CurrentRow->Index +"", conDataBase);

Также не забудьте закрыть соединение.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]