同时检查DBNull和null的最简单方法
本文关键字:最简单 方法 null 检查 DBNull | 更新日期: 2023-09-27 18:27:25
我正在通过C#查询SQL Server数据库,以返回表中特定行的数字。
函数应该返回数字,否则返回0。问题是,有时DB值为null,有时根本不返回任何值。我正在寻找最简洁的方法来同时检查这两个选项。
我得到的最简单的是:
return (value != DBNull.Value && value != null) ? (int)value : 0;
这是我得到的最简短的命令,但有一个命令可以同时检查两者吗?
编辑:
以下是我的整个代码块(以所选答案的代码为特色),用于分析:
protected int getProfile(string user_id)
{
using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["MySqlConnection"].ConnectionString))
{
using (SqlCommand command = new SqlCommand("SELECT type FROM tbl_consultant WHERE fk_user_id = @user_id"))
{
command.Parameters.AddWithValue("@user_id", user_id);
command.Connection = conn;
conn.Open();
var value = command.ExecuteScalar();
return value as int? ?? 0;
}
}
}
您可以将??
运算符与null值一起使用。
return (value as int?) ?? 0;
如果你觉得大胆,你甚至可以去掉parens。
您可以将其作为的扩展方法
public static bool IsNotNull(this object value)
{
return value != DBNull.Value && value != null;
}
return value.IsNotNull() ? (int)value : 0;