处理空值

时间:2013-07-22 18:27:32

标签: c# sql-server null

我有一个显示基于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,我将如何处理?就像数据是null Namelabel.Text = ""

3 个答案:

答案 0 :(得分:1)

你的意思是这样吗?

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

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

答案 1 :(得分: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);
}

答案 2 :(得分:0)

阅读时只需测试null。

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