Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.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# 为什么gridview绑定中的方法会引发NullReferenceException_C#_Asp.net_Gridview_Nullreferenceexception - Fatal编程技术网

C# 为什么gridview绑定中的方法会引发NullReferenceException

C# 为什么gridview绑定中的方法会引发NullReferenceException,c#,asp.net,gridview,nullreferenceexception,C#,Asp.net,Gridview,Nullreferenceexception,正如标题所说,我有一个方法在DataGridView绑定方法中抛出NullReferenceException 以下是我的代码(简化): 更改标题方法: private void ChangeHeaders(string DocType, int colCount, Regex appnoRegex) { switch (DocType.ToUpper()) { //intervention docu

正如标题所说,我有一个方法在DataGridView绑定方法中抛出NullReferenceException

以下是我的代码(简化):

更改标题方法:

private void ChangeHeaders(string DocType, int colCount, Regex appnoRegex)
        {
            switch (DocType.ToUpper())
            {
                //intervention documents
                case "I":
                    lblDocumentTypeTitle.Text = Resources.GeneralResouces.lblTypeTitleInterventionsText;
                    lblIntervenorLastName.Text = Resources.GeneralResouces.lblIntervenorLastNameInterventionText;
                    break;
                //Replies document
                case "R":
                    lblDocumentTypeTitle.Text = Resources.GeneralResouces.lblTypeTitleRepliesText;
                    lblIntervenorLastName.Text = Resources.GeneralResouces.lblIntervenorLastNameRepliesText;
                    break;
                //Answer Documents
                case "AR":
                    lblDocumentTypeTitle.Text = Resources.GeneralResouces.lblTypeTitleAnswersText;
                    lblIntervenorLastName.Text = Resources.GeneralResouces.lblIntervenorLastNameAnswerText;
                    break;
                //if none of teh above
                default:
                    //Notice of consultations
                    if (applicationCount == 0 && !appnoRegex.IsMatch(_eventNoQueryStr))
                    {
                        lblIntervenorLastName.Text = Resources.GeneralResouces.lblIntervenorText;
                    }
                    //Part 1 applications
                    else
                    {
                        //Part 1 applications and notices with applications
                        if (applicationCount != 0 || appnoRegex.IsMatch(_eventNoQueryStr))
                        {
                            lblIntervenorLastName.Text = Resources.GeneralResouces.lblIntervenorWithApplicationsText;
                        }
                    }
                    break;
            }
这是我得到的堆栈跟踪:

[NullReferenceException: Object reference not set to an instance of an object.]
   Interventions._Default.ChangeHeaders(String DocType, Int32 colCount, Regex appnoRegex) +13
   Interventions._Default.GridViewBinding(String sortExpression, String direction) +331
   Interventions._Default.Page_Load(Object sender, EventArgs e) +888
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +91
   System.Web.UI.Control.LoadRecursive() +74
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207
据我所知,错误来自changeheaders方法。我尝试将ChangeHeaders方法放在注释中,没有出现更多错误。这告诉我错误确实来自ChangeHeaders方法。然而,这是我第一次从一个方法中得到一个NUllReferenceException,我不知道它为什么这样做。特别是上述方法在代码中,当我调用它时没有输入错误


我如何修复此问题,谢谢。

请检查\u docTypeQueryStr的值


您可能正在向ChangeHeaders传递一个空值,并执行ToUpper()。

docTypeQueryStr的值是多少?可能您正在向ChangeHeader传递一个空值,而执行ToUpper()是错误的…在ChangeHeader行放置一个断点,并逐步检查代码以确定错误发生的位置。由于某些原因,它甚至没有在我的代码中命中gridviewbinding并在浏览器中抛出错误,使用断点进行调试最终证明是不可能的,因为(可能是vs2010 bug?@eGDEV,这就是问题所在,愚蠢的我,不知道我是如何忽略了这一点,哈哈,我已经添加了答案。。。
[NullReferenceException: Object reference not set to an instance of an object.]
   Interventions._Default.ChangeHeaders(String DocType, Int32 colCount, Regex appnoRegex) +13
   Interventions._Default.GridViewBinding(String sortExpression, String direction) +331
   Interventions._Default.Page_Load(Object sender, EventArgs e) +888
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +91
   System.Web.UI.Control.LoadRecursive() +74
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207