Я получил этот маленький блок кода в код-за формы:Определение, если поле даты содержит значение NULL
using (SqlConnection connection1 = new SqlConnection(str))
{
using (SqlCommand cmd = new SqlCommand("usp_select_claim_id_MERGE", connection1))
{
cmd.CommandType = CommandType.StoredProcedure;
connection1.Open();
{
using (SqlDataReader DT = cmd.ExecuteReader())
{
//Format the Orig Open Date to strip off the time and just leave the date
if ((DT["Orig_Open_Date"]) == null)
{
OrigOpenDt = Convert.ToDateTime("1/1/1900");
OrigOpenDt2 = "";
}
else
{
OrigOpenDt = Convert.ToDateTime(DT["Orig_Open_Date"]);
OrigOpenDt2 = OrigOpenDt.ToString("MM/dd/yyyy");
}
Когда она попадает заявление IF, он говорит мне, что это ложь, так код перескакивает в оператор «else». Но когда я смотрю на таблицу SQL Server при записи в вопросе, это выглядит следующим образом (на самом деле я просто смотрю на первую запись в изображении ниже):
Смотрит на меня как Orig_Open_Date (столбец вправо) имеет NULL.
Если я беру запись, где есть фактическая дата в Orig_Open_Date, она работает нормально. Если нет даты, она по-прежнему пытается запустить оператор else, поэтому мой оператор «if» должен быть неправильным.
По общему признанию, я C# n00b. Что я здесь делаю неправильно?
Если у вас возникли такие ситуации, отлаживайте его и увидите значение. Тогда вы поймете, что делать. Поэтому отладка n показывает, что такое значение (DT ["Orig_Open_Date"]). –
Я пробовал это первым. В окне Immediate я набрал? DT [«Orig_Open_Date»] и выплевывает «{}» (без кавычек). Я понятия не имел, что с этим делать. –