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删除了注释并添加为答案。对象为空,但打印时不为空,只有在我将其分配给变量时才为空。这就是我不明白的。