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?就像数据是null Namelabel.Text = "".

4

3 回答 3

1

你的意思是这样的吗?

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

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

于 2013-07-22T18:32:50.140 回答
1

在尝试将该值作为字符串读取之前,您可以使用它来检查空值。IsDBNull()像这样的东西:

if (sqlreader.Read())
{
    var columnOrdinal = sqlreader.GetOrdinal("Name");
    if (sqlReader.IsDBNull(columnOrdinal))
        NameLabel.Text = string.Empty;
    else
        Namelabel.Text = sqlreader.GetString(columnOrdinal);
}
于 2013-07-22T18:39:22.650 回答
0

只需在阅读时测试 null 。

 if (sqlreader.Read())
 {
      Namelabel.Text = sqlreader.GetString(sqlreader.GetOrdinal("Name")==null?"":sqlreader.GetOrdinal("Name"));
 }
于 2013-07-22T18:32:16.653 回答