Я бы не хотел, чтобы в моем коде было много проверок вроде следующего:
myObj.someStringField = rdr.IsDBNull(someOrdinal)
? string.Empty
: rdr.GetString(someOrdinal);
Я подумал, что могу просто попросить мой запрос позаботиться о нулях, сделав что-то вроде этого:
SELECT myField1, [isnull](myField1, '')
FROM myTable1
WHERE myField1 = someCondition
Однако я использую SQLite, и он, похоже, не распознает isnull
функцию. Я также пробовал несколько эквивалентных, распознаваемых в других базах данных ( NVL()
, IFNULL()
и COALESCE()
), но SQLite, похоже, не распознает ни одну из них.
Есть ли у кого-нибудь предложения или есть ли способ сделать это лучше? К сожалению, в базе данных нет значений по умолчанию для всех полей. Кроме того, мне нужно использовать некоторые LEFT JOIN
предложения в некоторых случаях, когда некоторые из возвращаемых полей будут пустыми, потому что соответствующая запись в LEFT JOIN
таблице не существует.