有人知道这个错误是什么吗?

时间:2011-04-06 10:01:57

标签: c# asp.net gridview datatable datasource

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

运行此代码后

        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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

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

答案 2 :(得分:0)

如果您确定gvRapporten,则在调用ToString()函数时,循环中访问的其中一行可能包含NULL引用,从而产生错误