Я следующий код, который, кажется, работает:C# DataRow сравнения DBNull.Value для DateTime против нулевой строки для
DataRow row = <result of a query>;
string strVarName = (row["VarName"]??"").ToString();
Я могу также использовать что-то вроде этого, - и это тоже работает:
string strVarName = row["VarName"]==null ? "" : row["VarName"].ToString();
Я хотел бы использовать ту же форму для получения даты. Intellisense сообщает мне, что обнуляемым оператор не любит работать с датами, так что я пытаюсь что-то подобное, я должен сделать
string strVarName = row["VarName"]==DBnull.Value ? "" : row["VarName"].ToShortDateString();
Получить что? Для строк я сравниваю значение null, но для дат я сравниваю DBnull. Строка даты не будет работать последовательно с сопоставлением с нулем. Я в порядке с этим ... и может быть, что сравнение строк будет работать, если я попытаюсь сравнить его с DBNull.Value. Мне просто интересно, почему кажется, что я должен использовать DBNull.Value по сравнению с полем DateTime DataRow, тогда как я могу использовать null при сравнении со строковым полем.