2013-07-22 94 views
0

我有一个显示基于的EmpID名称的命令:处理空值

using (SqlCommand SqlCommand = new SqlCommand("Select EmpID, Name from EmpTable where EmpID = @a", myDatabaseConnection)) 
       { 
        SqlCommand.Parameters.AddWithValue("@a", textBox1.Text); 
        using (SqlDataReader sqlreader = SqlCommand.ExecuteReader()) 
        { 

         if (sqlreader.Read()) 
         { 
          Namelabel.Text = sqlreader.GetString(sqlreader.GetOrdinal("Name")); 
         } 
        } 
       } 

如何,如果名称数据null我会处理?如果数据是nullNamelabel.Text = ""

+0

有什么需要处理的?如果输出为空,我会想象你已经拥有的代码会工作得很好。 – Servy

+0

你想要什么? – user1

+0

你想检查null? –

回答

1

你的意思是这样的吗?

Namelabel.Text = !String.IsNullOrEmpty(sqlreader.GetString(sqlreader.GetOrdinal("Name"))) ? sqlreader.GetString(sqlreader.GetOrdinal("Name")) : "Value not found"; 

如果数据库中的值为NULL,这将给出一些输出。

+0

谢谢卡尔:) –

0

在阅读时只需测试null值。

if (sqlreader.Read()) 
{ 
     Namelabel.Text = sqlreader.GetString(sqlreader.GetOrdinal("Name")==null?"":sqlreader.GetOrdinal("Name")); 
} 
1

您可以use IsDBNull()在尝试将该值作为字符串读取之前检查空值。类似这样的:

if (sqlreader.Read()) 
{ 
    var columnOrdinal = sqlreader.GetOrdinal("Name"); 
    if (sqlReader.IsDBNull(columnOrdinal)) 
     NameLabel.Text = string.Empty; 
    else 
     Namelabel.Text = sqlreader.GetString(columnOrdinal); 
}