没搞清楚DataSet,怎么才能看到DataSet中的数据?
DataSet ModeDataSet;ModeDataSet = oDBWebService.GetGroupModeDetails(Session[clsConstants.SESSION_SELECTED_RPGROUP_ID].ToString());MODE_myDataGrid.DataSource = ModeDataSet.Tables[1].DataSet;
MODE_myDataGrid.DataBind();  //程序在这句报错,"A field or property with the name 'ISGROUP' was not found on the selected data source."
我跟踪了oDBWebService那边的程序,调用存储过程,有返回数据集
ISGROUP  DESTINATION   .........
TRUE NULL      AfterHrsMsg NULL After Hours请大家帮我看看吧

解决方案 »

  1.   

    MODE_myDataGrid.DataSource = ModeDataSet.Tables[1].DataSet;这句很搞笑
    要么
    MODE_myDataGrid.DataSource = ModeDataSet;
    要么
    MODE_myDataGrid.DataSource = ModeDataSet.Tables[1];
    估计你改成后者就没问题了。
      

  2.   

    一个是1楼的答案。
    另一个根据错误提示,是不是ISGROUP这个字段绑定错了?
      

  3.   


    MODE_myDataGrid.DataSource = ModeDataSet.Tables[0].DefaultView;
      

  4.   

    呵呵 感谢pcqpzq, QQ_ChunLin_Hu_, xiamiking, wangjun8868 几位的热心.
    确实改成MODE_myDataGrid.DataSource = ModeDataSet.Tables[1];就可以了.不过这个问题还没有解决.这个程序以前是正确的,是我给改错了,原来的代码如下
    MODE_myDataGrid.DataSource = ModeDataSet
    因为GetGroupModeDetails是个公用函数,分别获取不同类型数据库传递过来的DataSet.这个方法获取从Oracle传过来数据是正确的.所以,我想解决这个问题的方法是我需要修改前面的访问MSSQL传递回来的函数部分.再次贴上以下代码public DataSet GetGroupModeDetails(string RPGroup_ID)
    {
        DataSet ModeDescription = null;
        ModeDescription = runMultiRowSelect("USP_SELECT_GetGroupModeDetails",parameters, "GetGroupModeDetails");
        return (ModeDescription);
    }或者修改存储过程USP_SELECT_GetGroupModeDetails,因为我发现DataSet ModeDescription获取的数据有Tables[0]和Tables[1],如果返回只有1个Table,那么就不需要修改上面的程序了.也简单贴些存储过程的代码吧    --调用另一个存储过程
        exec @iTotalRPGroup = [dbo].[USP_SELECT_GetTotalRPMatchInGroup]  
        --Union 两个SQL输出
        SELECT 'TRUE' AS ISGROUP,NULL AS DESTINATION.... from ... Group by...having count(*)...
        Union
        SELECT 'TRUE' AS ISGROUP,NULL AS DESTINATION.... from ... Group by...having count(*)...水平有限,请大家多教教我吧