Member 13988786 Ответов: 1

Sqlite C# при ошибке удаления такого столбца нет.


Получение ошибки, что столбец не существует. Только начал учиться.
Пожалуйста, немного помогите?

System.Data.SQLite.SQLiteConnection sqlite_conn;
System.Data.SQLite.SQLiteCommand sqlite_cmd;
System.Data.SQLite.SQLiteDataReader sqlite_datareader;
private int sqlite_reader;


 private void button2_Click(object sender, EventArgs e)
{
sqlite_conn = new System.Data.SQLite.SQLiteConnection("Data Source=D:/main.db;Version=3;");
sqlite_conn.Open();
sqlite_cmd = sqlite_conn.CreateCommand();
sqlite_cmd.CommandText = "DELETE  FROM Table WHERE Name ="+comboBox1.Text+"";
sqlite_reader = sqlite_cmd.ExecuteNonQuery();
sqlite_conn.Close();
}


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

Попробовал выбрать * из таблицы
БД работает нормально.

1 Ответов

Рейтинг:
9

Maciej Los

Попробовать это:

sqlite_cmd.CommandText = string.Format("DELETE  FROM Table WHERE Name ='{0}'", comboBox1.Text);


Для получения более подробной информации, пожалуйста, смотрите:
SQLite WHERE - фильтр строк в результирующем наборе[^]

Примечание: ваш код является SQL-инъекция[^] уязвимый. Вы должны использовать параметры:
this.command.CommandText = "DELETE FROM Table1 WHERE Name=@param1";
this.command.CommandType = CommandType.Text;
this.command.Parameters.Add(new SQLiteParameter("@param1", comboBox1.Text));


phil.o

Новичку противопоставить. Это произошло несколько раз сегодня утром для совершенно обоснованных решений.

Maciej Los

Спасибо, Фил.

Member 13988786

Большое спасибо !! Будет продолжать учиться.

Maciej Los

Всегда пожалуйста.