Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对象引用未设置为对象的实例。出现NullReferenceException_C#_Winforms_Nullreferenceexception - Fatal编程技术网

C# 对象引用未设置为对象的实例。出现NullReferenceException

C# 对象引用未设置为对象的实例。出现NullReferenceException,c#,winforms,nullreferenceexception,C#,Winforms,Nullreferenceexception,我对.Net非常陌生,不知道如何解决我的大部分问题。这是我的问题。我创建了一个表单来执行脚本列表。数据将来自数据库。我的问题是,当我调试时,我在这段代码上得到了NullReferenceException错误 private void Load_RefreshForm_ScriptMgmt() { try { SqlCommand ObjCmd = new SqlCommand(); SqlConnection ObjConn = new SqlC

我对.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();
    }
}

通过在try块的第一行设置断点并跟踪执行,可以看到哪一行抛出该异常

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

通过在异常窗口中启用中断执行,可以轻松跟踪引发此异常的语句:

调试>异常。。。(Ctrl+Alt+E)

并选中公共语言运行时异常“抛出”复选框


至于异常本身——这是非常自我解释的——您正在尝试使用一个未分配给任何东西的引用变量(不指向任何地方)。

其中是
this.da_LoadScripts.SelectCommand
first set,然后用
ObjCmd
覆盖它?如果第一次创建并设置
ObjCmd
时它为null,那么您将通过尝试访问
CommandText
属性获得null异常。您应该能够通过调试应用程序来确定错误发生的确切位置。欢迎使用堆栈溢出!几乎所有
NullReferenceException
的情况都是相同的。有关提示,请参阅“”。