【问题标题】:Does someone know what this error is?有人知道这个错误是什么吗?
【发布时间】:2026-01-08 10:20:06
【问题描述】:

我收到此错误:对象引用未设置为实例。

运行此代码后

        DataTable dtOriginal = new DataTable();
        dtOriginal = (DataTable)gvRapporten.DataSource; //Return Table consisting data

        //Create Tempory Table
        DataTable dtTemp = new DataTable();

        //Creating Header Row
        dtTemp.Columns.Add("<b>Melder</b>");
        dtTemp.Columns.Add("<b>Onderwerp</b>");
        dtTemp.Columns.Add("<b>Oplosser</b>");
        dtTemp.Columns.Add("<b>Niveau 2</b>");
        DataRow drAddItem;
        for (int i = 0; i < dtOriginal.Rows.Count; i++)
        {
            drAddItem = dtTemp.NewRow();
            drAddItem[0] = dtOriginal.Rows[i][0].ToString();//Melder
            drAddItem[1] = dtOriginal.Rows[i][1].ToString();//Onderwerp
            drAddItem[2] = dtOriginal.Rows[i][2].ToString();//Oplosser
            drAddItem[3] = dtOriginal.Rows[i][3].ToString();//Niveau 2

            dtTemp.Rows.Add(drAddItem);
        }

gridview 'gvRapporten'的数据源是在page_load事件中设置的,所以不能为NULL

【问题讨论】:

  • 使用调试并检查您在哪一行得到错误?在您的问题中显示该行代码
  • 离题评论:dtTemp.Columns.Add("Melder");?您正在创建 DataTable 列。不是标题行。

标签: c# asp.net gridview datatable datasource


【解决方案1】:

如果此代码不是“page_load”的一部分,那么我假设这是在其他控件事件上,这意味着 gvRapporten.DataSource 的值将在回发时被清除。由于 web 是“无状态”的,它不会保留数据表的值,因此您应该再次从数据库中获取该值。

【讨论】:

    【解决方案2】:

    在回帖时,DataSource 将为空。您必须重新运行查询才能获取原始数据。

    【讨论】:

      【解决方案3】:

      如果您确定 gvRapporten,则循环中访问的行之一可能包含 NULL 引用,当您调用 ToString() 函数时会出错

      【讨论】: