使maskedtextbox从SqlDataReader读取NULL

时间:2013-07-14 14:02:29

标签: c# sql sql-server sqldatareader sqlcommand

我有这个短代码,用于将数据读入maskedtextbox然后(这不是此代码的一部分)通过SqlCommand更新它们

    SqlCommand novyprikaz = new SqlCommand("SELECT * FROM zajezd WHERE akce=" + tentoradek, spojeni);
            spojeni.Open();
            SqlDataReader precti = novyprikaz.ExecuteReader();

            if (precti.Read())
            {maskedTextBox2.Text = precti.GetDateTime(24).ToShortDateString(); // i need to improve this part
}

但是知道maskedTextBox2值是否为NULL,它会给我一个错误:

  

数据是空的。无法在Null值上调用此方法或属性。

我想问你,我应该用这段代码改变什么来使它读取Null? 提前谢谢。

以下是我过去为INSERT INTO执行的代码片段。它标记为答案。

1 个答案:

答案 0 :(得分:1)

使用第24列上的IsDBNull method检查SqlDataReader是否包含DBNull值,并正确地返回空字符串或非空值

 if (precti.Read())
 {

      maskedTextBox2.Text = precti.IsDBNull(24) ? 
                            string.Empty : 
                            precti.GetDateTime(24).ToShortDateString(); 
 }