Вопрос

Проверить, существует ли значение в БД

Я пытался с помощью new Select найти значение и сравнить его со строкой, но столкнулся с 2 проблемами.



- Не удается преобразовать тип, даже если я его получил ( я пробовал ExecuteScalar).

- Ошибка преобразования типа, если нет найденого значения.



Как мне реализовать поиск определенного значения в таблице, его получение, проверку, существует ли этой значение и потом получить строку как результат (значение в таблице тоже хранится как строка)

Нравится

1 комментарий

Артем, добрый день!

Для проверки наличия значений вы можете использовать всё тотже dataReader, вот пример с использованием ExecuteScalar:

var result = "";
bool hasRecord = false;
var select = new Select(UserConnection)
    .Column("CountryId")
    .From("City")
    .Where("Name").IsEqual(Column.Parameter("Sacramento")) as Select;
using (DBExecutor executor = UserConnection.EnsureDBConnection()) {
	using (IDataReader dataReader = select.ExecuteReader(executor)) {
 		while (dataReader.Read()) {
    		hasRecord  = true;
  		}
		if (hasRecord){
			result = select.ExecuteScalar<Guid>().ToString();
		}
 	}
}

 

Показать все комментарии