Имейте в виду, что вопрос взаимодействует с вашими определениями данных. Если «field» было определено как «Not Null», вам не нужно беспокоиться о нулевых данных, и вы должны выбрать # 1 для удобства чтения. Точно так же, если поле обнуляемо, но вы используете функцию «IsNull» при выполнении запроса:
Select IsNull(Field1, '') as Field1 From DBTable Where...
тогда, опять же, вы должны выбрать # 1, потому что вам все равно не нужно беспокоиться о нуле. Конечно, это предполагает, что вы хотите, чтобы нулевое значение было замаскировано пустой строкой. Если вы хотите проверить нулевое значение, потому что это условие ошибки, тогда у вас будет такая логика:
if (nwReader.IsDBNull(nwReader.GetOrdinal("Field1")))
*throw exception or otherwise handle null condition
string aStr = (string)nwReader["field"];
Этот последний случай, однако, не очень хорошая практика. Если null является недопустимым значением - условием ошибки, - вы должны исключить его в своем DDL.
В конце концов, я всегда выбираю вариант № 1, потому что я думаю, что это приводит к лучшей читабельности, и это заставляет меня явно указывать обработку нуля.