0

我目前正在开发一个网站,但遇到了一个小问题。在调试我的代码时,当我尝试访问用户的个人资料时,会引发异常(“必须在使用 DataView 异常之前设置 DataTable。”)。我已经在此站点和其他论坛上进行了检查,但我不确定在这种情况下如何进行。

这是有问题的代码:

private void FillGrid()
{
    DataSet ds = new DataSet();
    //get data from session
    ds = (DataSet)SessionNavigator.GetDataFromCurrentPage(PageParams.Customer.DataCards);
    if (ds != null)
    {
        DataView dv = new DataView(ds.Tables["Cards"], "", "", DataViewRowState.CurrentRows);
        gridCtrl.RowsCount = dv.Count;
        gridCtrl.BindGrid(dv);
    }
}

任何建议/解决方案将不胜感激!

4

1 回答 1

0

根据我的研究,您应该能够反转这两行代码:

gridCtrl.BindGrid(dv);
gridCtrl.RowsCount = dv.Count;

在它可以利用之前绑定网格DataView

但正如我在评论中所说,这一行:

DataView dv = new DataView(ds.Tables["Cards"], "", "",
    DataViewRowState.CurrentRows);

应该可以是:

DataView dv = ds.Tables["Cards"].DefaultView;
于 2013-11-13T13:07:19.263 回答