Попробуйте удалить одинарные кавычки.Кроме того, почему вы объединяете свою строку SQL с объектом соединения (.. word='@word'" + conn
) ???
Попробуйте так:
try
{
using (var sc = new SqlConnection(ConnectionString))
using (var cmd = sc.CreateCommand())
{
sc.Open();
cmd.CommandText = "DELETE FROM excludes WHERE word = @word";
cmd.Parameters.AddWithValue("@word", word);
cmd.ExecuteNonQuery();
}
}
catch (Exception e)
{
Box.Text = "SQL error" + e;
}
...
Обратите внимание, что, поскольку соединение заключено в использованиеблокировать, вам не нужно закрывать его в операторе finally
.Метод Dispose автоматически вызывает метод .Close, который возвращает соединение с пулом соединений ADO.NET, чтобы его можно было повторно использовать.
Еще одно замечание: этот метод IncludeWord
делает многое.Он отправляет SQL-запросы для удаления записей, обновляет некоторые текстовые поля в графическом интерфейсе и связывает некоторые методы lists =>, которые должны быть разделены таким образом, чтобы у каждого метода была своя конкретная ответственность.В противном случае этот код просто кошмар с точки зрения обслуживания.Я очень настоятельно рекомендую вам написать методы, которые выполняют только одну конкретную задачу, в противном случае код быстро превращается в полный беспорядок.