你调用的对象是空的。发生NullReferenceException

时间:2013-10-03 19:48:39

标签: c# winforms nullreferenceexception

我是.Net的新手,不知道如何解决我的大部分问题。这是我的问题。我创建了一个表单来执行脚本列表。数据将来自数据库。我的问题是当我调试时,我在这个代码块上出现NullReferenceException错误

private void Load_RefreshForm_ScriptMgmt()
{
    try
    {
        SqlCommand ObjCmd = new SqlCommand();
        SqlConnection ObjConn = new SqlConnection();
        this.Ds_Settings1.Tables["Settings_RefreshForm_ScriptMgmt_SelectALL"].Clear();
        ObjConn.ConnectionString = this.MainConnection;
        ObjCmd.CommandType = CommandType.StoredProcedure;
        ObjCmd = new SqlCommand(this.da_LoadScripts.SelectCommand.CommandText.ToString(), ObjConn);
        this.da_LoadScripts.SelectCommand = ObjCmd;
        this.da_LoadScripts.Fill(this.Ds_Settings1);
    }
    catch (Exception exception)
    {
        ProjectData.SetProjectError(exception);
        this.DisplayOnly_ErrorHandler("ERROR LOADING REFRESH SCRIPTS ", exception.Message, MsgBoxStyle.Critical);
        ProjectData.ClearProjectError();
    }
}

2 个答案:

答案 0 :(得分:0)

您可以通过在try块的第一行设置断点并查看执行来查看哪一行抛出该异常。

有很多行可以抛出异常。 this.Ds_Settings1也可以为null,this.da_LoadScripts。 如果其中一个对象为null并且您尝试在其上调用函数或访问属性,则会出现该错误。在调用该函数之前验证是否定义了这些对象。

答案 1 :(得分:0)

您可以通过在“例外”窗口中启用中断执行来轻松跟踪引发此异常的语句:

调试>例外...(Ctrl + Alt + E)

并选中Common Language Runtime Exceptions'Trown'复选框。

至于异常本身 - 它是非常自我解释的 - 你试图使用一个未分配给任何东西的参考变量(无处点)。