首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果maskedTextBox在从Sql = null读取后

如果maskedTextBox在从Sql = null读取后
EN

Stack Overflow用户
提问于 2013-08-21 12:51:55
回答 2查看 336关注 0票数 0

你好,我试着从Sql读取日期如下:

代码语言:javascript
复制
SqlCommand comm= new SqlCommand("SELECT * FROM zajezd WHERE akce='" + tentoradek + "' AND rocnik='" + rocnik + "'", spojeni);
spojeni.Open();
SqlDataReader read= comm.ExecuteReader();

if (read.Read())
{
    object nulldate = (maskedTextBox2.Text = read.GetDateTime(24).ToShortDateString());
    if (nulldate == null)
    {
        maskedTextBox2.Text = "__.__.____";
    }

} 

但是问题在于,当值为null时,我需要maskedTextBox为空。我总是得到这样的异常:“不能对空值调用此方法或属性”。

当特定列的值被读取为NULL时,如何避免maskedTextBox为空?

maskedTextBox上的掩码是00/00/0000

非常感谢你回答我的低质量问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-21 13:11:07

替换

代码语言:javascript
复制
 object nulldate = (maskedTextBox2.Text = read.GetDateTime(24).ToShortDateString());

使用

代码语言:javascript
复制
 object nulldate = (maskedTextBox2.Text = read.IsDBNull(24) ? string.Empty : read.GetDateTime(24).ToShortDateString()); 
票数 1
EN

Stack Overflow用户

发布于 2013-08-21 13:00:08

我不知道什么是SqlDataReader,但我认为这应该是,对吧?

然而。您的读者有一个名为IsDbNull(INDEX)的方法,您可以在这里检查特定列是否为DbNull。

只是为了获得信息:您不应该像这样构建SQL-查询:

代码语言:javascript
复制
SqlCommand comm= new SqlCommand("SELECT * FROM zajezd WHERE akce='" + tentoradek + "' AND rocnik='" + rocnik + "'", spojeni);

相反,请尝试以下代码:

代码语言:javascript
复制
SqlCommand command = new SqlCommand("SELECT * FROM zajezd WHERE akce=@akce and rocnik=@rocnik", spojeni);
command.Parameters.AddWithValue("@akce", tentoradek);
command.Parameters.AddWithValue("@rocnik", rocnik);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18357939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档