C# 为什么gridview绑定中的方法会引发NullReferenceException
正如标题所说,我有一个方法在DataGridView绑定方法中抛出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
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