У меня есть 4 значения, которые пользователь может ввести, это ключевые слова, которые должны быть (или часть) в значении столбца, и 2 значения, которые пользователь может ввести, которые не должны существовать в том же столбце.Если результат верный, следует обновить поле в другом столбце.
Проблема заключается в том, что я верю в 2 области.
Как обрабатывать пустые данные (поиск и / илипропустите) поля.
Как объединить значения, которые должен содержать столбец, со значениями, которые столбец не должен содержать.
Я перепробовал всевиды комбинаций LIKE NOT LIKE, но ничто не дало ожидаемого результата.Единственное, что сработало, было заполнить поля empy данными из заполненного поля.что не похоже на чистое решение.Затем, когда я добавил NOT LIKE, он больше не работал.Наказал за грязное решение.:) Надеясь на поддержку правильного решения, спасибо!
public bool UpdateFavProgramswithStationTableProgrammes(int favid, string station, string searchword1, string searchword2, string searchword3, string searchword4, string omitword1, string omitword2)
{
//Stringbuilder
try
{
using (var connection = new SQLiteConnection(System.IO.Path.Combine(folder, "WhatsUpDB.db")))
{
connection.Execute("UPDATE Programmes SET FoundFav=? WHERE (Title LIKE ? AND Title LIKE ? AND Title LIKE ? AND Title LIKE ?) AND (IFNULL(title, '') NOT LIKE ? AND IFNULL(title, '') NOT LIKE ?) AND Station=? AND Stoptime>=?", favid, searchword1, searchword2, searchword3, searchword4, omitword1, omitword2, station, DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm"));
return true;
}
}
catch (SQLiteException ex)
{
Log.Info("SQLiteEx", ex.Message);
return false;
}
Как пример:
Пользователь вводит (searchword1) "Appels" и (Omitword1) "Rotten".Это должно привести к значению столбца «Яблоки хорошо выглядят» в качестве найденной записи и, таким образом, обновить флаг избранного (найденный или любимый флаг).