Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使maskedtextbox从SqlDataReader读取NULL_C#_Sql_Sql Server_Sqldatareader_Sqlcommand - Fatal编程技术网

C# 使maskedtextbox从SqlDataReader读取NULL

C# 使maskedtextbox从SqlDataReader读取NULL,c#,sql,sql-server,sqldatareader,sqlcommand,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();

我有一个简短的代码,我用它将数据读入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
值为空,则会出现以下错误:

数据为空。无法对空值调用此方法或属性

我想问你,我应该用这个代码做什么改变,使它读空? 提前谢谢


这是我用来为插入到
中所做的代码片段,它被标记为答案。

使用第24列上的检查SqlDataReader是否包含DBNull值,并适当地返回空字符串或NOTNULL值

 if (precti.Read())
 {

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

非常感谢您的回答,但它给了我一个错误:在没有数据存在的情况下读取的尝试无效。这很奇怪,因为如果read方法返回true,那么您已经在第一行提升了读卡器,这意味着存在一条记录。然后IsDBNull检查该列是否不包含值,只有当返回false时,代码才会尝试读取第24列。在这些行之前是否有其他代码可以更改预期的行为?