在底层我用泛型类替代DataSet,把数据库里的数据保存在泛型类中
现在我想在页面层读取泛型类里的数据,怎么实现?

解决方案 »

  1.   

    List<DataRow> dataTable = GetFromDB();
    foreach(DataRow dr in dataTable)
    {
    ...
    }
      

  2.   

    泛型类 class1<T> T代表一个对象
           IList<T> 代替DataSet
     
    读数据 foreach(T t in IList<T>)
    读具体的模块时,需要把t转换成具体类了.
      

  3.   

    循环拆箱成你要的对像,或者设置控件的DataSource=泛型列表
      

  4.   


    正解,里面的使用可以直接用dr就可以了
    foreach(DataRow dr in dataTable)
    {
     if(dr.rows.count > 0)
      {
        //dr就是datatable你的数据呵
      }
    }
      

  5.   

    像使用DataSet一样的使用啊,实际上,不管是DataSet还是所谓的泛类型dataTable都是链接着数据库的,都有着和数据库中同样的表结构
    foreach(DataRow dr in dataTable)//dataTable就是表,只是是表都能这样做为集合处理;
    {
    }
      

  6.   

    我的意思是不用Datatable、DataSet,而用一个泛型实体类进行存值和取值
    自己已经写出来了        public int SelectAllSchedule(long nUserID,List<ScheduleEntity>TSchedule,out string strMsg)
            {
                //定义数组参数
                SqlParameter[] parm = new SqlParameter[] { new SqlParameter("@UserID", SqlDbType.BigInt, 8) };            //参数赋值
                parm[0].Value = nUserID;            //执行存储过程
                try
                {
                    SqlDataReader dtrReader = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.StoredProcedure, "M_SCHEDULE_SELECT_ALL", parm);                //读取日程信息
                    while (dtrReader.Read())
                    {
                        ScheduleEntity schedule = new ScheduleEntity();
                        schedule.ID = dtrReader.GetInt64(0);
                        schedule.Type = dtrReader.GetInt32(1);
                        schedule.StartTime = dtrReader.GetDateTime(2);
                        schedule.EndTime = dtrReader.GetDateTime(3);
                        schedule.Description = dtrReader.GetString(4);
                        schedule.IsFinish = dtrReader.GetBoolean(5);
                        schedule.UserID = dtrReader.GetInt64(6);
                        TSchedule.Add(schedule);
                    }
                    strMsg = "";
                    return 1;
                }
                catch(Exception ex)
                {
                    strMsg = ex.Message;
                    return 0;
                }
            }