我有一个显示基于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 = ""
。
答案 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"));
}