【问题标题】:DataTable.Merge throws Error: Object reference not set to an instanceDataTable.Merge 抛出错误:对象引用未设置为实例
【发布时间】:2011-10-31 02:52:35
【问题描述】:

我想在 DropDownList selectedindex changed 事件中合并数据表。所以我在 DropDownList_SelectedIndexChanged 事件中编写了以下代码。

    DataTable dt = (DataTable)POBLL.GetPOAdhocDetail();
    DataView dv = new DataView(dt);
    dv.RowFilter = "IndentTypeID = " + ddlIndentType.SelectedValue + "AND IndentID = " + ddlIndentNumber.SelectedValue;
    DataTable dtView = dv.ToTable();        
    gvPODetails.DataSource = dtView;
    gvPODetails.DataBind();
    DTMerge.Merge(dtView);

其中 DTMerge 是 DataTable,我声明如下:

   public DataTable DTMerge
   {
      get
      {
        if (ViewState["Merge"] != null)
        {
            return (DataTable)ViewState["Merge"];
        }
        else
            return null;
      }
      set
      {
         ViewState["Merge"] = value;
      }
  }

但它会抛出错误“对象引用未设置为实例”。如何解决?

【问题讨论】:

    标签: c# asp.net merge datatable


    【解决方案1】:

    您请求了 DTMerge 属性,该属性有效地需要存在相应的 ViewState。您还没有 ViewState,此时您访问 DTMerge 属性。

    这很可能是问题所在。

    【讨论】:

    • 但我想为每个 SelectedindexChanged 事件合并相同的数据表。如何做到这一点?
    • 如果 DTMerge 为空,则使其等于 dt: DTMerge = dt;如果没有,请继续你的工作。
    猜你喜欢
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    • 2020-06-12
    相关资源
    最近更新 更多