C# Can';t将可打印对象分配给字符串变量
通过以下代码行,我可以打印行的主键:C# Can';t将可打印对象分配给字符串变量,c#,asp.net,C#,Asp.net,通过以下代码行,我可以打印行的主键: protected void storyGridView_OnRowDataBound(Object sender, GridViewRowEventArgs e) { System.Diagnostics.Debug.WriteLine(DataBinder.Eval(e.Row.DataItem, "PK_NonScrumStory")); } 但是,我无法将值分配给字符串变量: 和 如何获得分配给变量的值 编辑: 堆栈跟踪: [Null
protected void storyGridView_OnRowDataBound(Object sender, GridViewRowEventArgs e)
{
System.Diagnostics.Debug.WriteLine(DataBinder.Eval(e.Row.DataItem, "PK_NonScrumStory"));
}
但是,我无法将值分配给字符串变量:
和
如何获得分配给变量的值
编辑:
堆栈跟踪:
[NullReferenceException: Object reference not set to an instance of an object.]
user_nonscrumstories2.storyGridView_OnRowDataBound(Object sender, GridViewRowEventArgs e) in c:\Users\tunnelld2\Documents\Visual Studio 2012\Websites\ZSA_New 21\user\nonscrumstories2.aspx.cs:424
System.Web.UI.WebControls.GridView.OnRowDataBound(GridViewRowEventArgs e) +111
System.Web.UI.WebControls.GridView.CreateRow(Int32 rowIndex, Int32 dataSourceIndex, DataControlRowType rowType, DataControlRowState rowState, Boolean dataBind, Object dataItem, DataControlField[] fields, TableRowCollection rows, PagedDataSource pagedDataSource) +181
System.Web.UI.WebControls.GridView.CreateChildControls(IEnumerable dataSource, Boolean dataBinding) +2188
System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data) +67
System.Web.UI.WebControls.GridView.PerformDataBinding(IEnumerable data) +14
System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +123
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +33
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +138
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +30
System.Web.UI.WebControls.GridView.DataBind() +4
System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +105
System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +75
System.Web.UI.Control.EnsureChildControls() +83
System.Web.UI.Control.PreRenderRecursiveInternal() +42
System.Web.UI.Control.PreRenderRecursiveInternal() +168
System.Web.UI.Control.PreRenderRecursiveInternal() +168
System.Web.UI.Control.PreRenderRecursiveInternal() +168
System.Web.UI.Control.PreRenderRecursiveInternal() +168
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +974
您确实需要对对象调用
ToString()
,但可能因为对象为null而发生NullReferenceException
。当您调试并且异常停止时,请查看局部变量(debug->Windows->locals)以查看其实际值。尝试显式强制转换为(int)以摆脱“装箱”,然后调用.ToString()尝试查看此帖子,请注意,它仅尝试检索类型为DataControlRowType.DataRow
的行的值。试图从标题行获取不存在的“PF\u NonScrumStory”
值可能会导致空引用异常。能否将异常的堆栈跟踪添加到问题中?我已添加堆栈跟踪。@LeastOne是正确的,这就是问题所在,谢谢。如果您愿意,请发布答案。@DavidTunnell删除了注释并添加为答案。对象为空,但打印时不为空,只有在我将其分配给变量时才为空。这就是我不明白的。