c# - 为什么我不能检查连接字符串上的空引用?

标签 c# asp.net null connection-string nullreferenceexception

可能是一个 C# 菜鸟问题,所以不要喷我。我试图这样做:

if (ConfigurationManager.ConnectionStrings["PrimaryConnectionString"].ConnectionString != null)
{
    // ...
}

但我一直收到 System.NullReferenceException。我想既然它返回了一个字符串,我就可以检查 null 并继续。我花了一段时间才找到正确的方法:

ConnectionStringSettings cs = ConfigurationManager.ConnectionStrings["PrimaryConnectionString"];
if (cs != null)
{
    this.Connection.ConnectionString = cs.ConnectionString;
}

所以在其他情况下,比如检查 Session 对象的某个值,我会像这样检查 null:

if (Session["EmployeeID"] != null)
{
    _EmployeeID = System.Convert.ToInt32(Session["EmployeeID"]);
}

所以我只想知道你怎么知道什么时候可以或不能检查 null

最佳答案

您的问题是您正在检查:

ConfigurationManager
    .ConnectionStrings["PrimaryConnectionString"]
        .ConnectionString

对于空指针。

事实上,

ConfigurationManager
    .ConnectionStrings["PrimaryConnectionString"]

为 null,因此,当您尝试取消引用 that 以获取连接字符串时,就会出现异常。实际上,您正在做的是:

null.ConnectionString

这是有问题的。

我倾向于要么避免在单个语句中进行多层取消引用,要么在整个事情周围放置一个异常处理程序以在任何时候捕获问题。

关于c# - 为什么我不能检查连接字符串上的空引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1175952/

相关文章:

python - 如何等待 python 中的任务列表?

c# - 使用 FileHelpers 从 asp.net 文件上传读取 CSV 文件

mysql - 使用默认值 NULL 好吗?

swift - Bundle.main.path 返回 nil

Android 从 Gallery NullPointerException 中选择图像?

c# - 如何在 Unity 中为游戏添加重启功能?

c# - 在调用 Add() 之后但在调用 SaveChanges() 之前从上下文中检索实体

javascript - 关闭网页上的对话窗口

c# - 寻找从 100% Web 开发转向 winforms 的人们的反馈

c# - 回发时 IE 中的 ViewState 错误