我在做一个考试系统, 在进入第一个页面的时候就把所有试题及相关答案信息取出,放入一个 DataTable中。 然后逐页答题。同时记录学生答案,交卷的时候利用最初的DataTable中的数据,和学生答案做一个评分处理。  现在如何用Session把这个DataTable逐页传下去。 如何接收Session数据。在页面1中我写下  Session("DT1") = DT1 其中DT1已经有数据, 
在页面2中我写下  dim new DT1 as new DataTable
                 DT1 = Session("DT1")
但是取不到值。以前没用过Asp.Net 。 还请各位帮忙。

解决方案 »

  1.   

    dim dt1 as databale
                     DT1 = CType(  Session("DT1") , DataTable )
      

  2.   

    Session("DT1") 是Object类型的,你应该把它转化成DataTable.
      

  3.   

    //*****将数据存放在Session中
    private void InitLoadTable()
    {
        DataTable dTable=new DataTable(); dTable.Columns.Add("ID",typeof(int));
    dTable.Columns.Add("Name",typeof(string)); //****添加数据
    DataRow dRow=dTable.NewRow();
    dRow["ID"]=4;
                dRow["Name"]="第";

    dTable.Rows.Add(dRow); DataRow dRow1=dTable.NewRow(); dRow1["ID"]=2;
    dRow1["Name"]="zxp"; dTable.Rows.Add(dRow1);
    //****保存到sexxion中
    Session["Table"]=dTable;
    } public string SessionTable=""; //*****获取取
    private void GetSessionTable()
    {
        DataTable dTable=new DataTable();
                
    dTable=(DataTable)Session["Table"];            StringBuilder strApp=new StringBuilder(); foreach(DataRow dRow in dTable.Rows)
    {
       strApp.Append(dRow["ID"].ToString());
    }
    SessionTable=strApp.ToString();
    }
      

  4.   

    hdt说的有道理,你在第二页里面没有进行转换
      

  5.   

    Session是object类型的,用的时候得把你存的类型还原
    Session("DT1") = DT1 dim new DT1 as new DataTableDT1 = CType(  Session("DT1") , DataTable )
    或者DT1 = (DataTable)Session("DT1")
      

  6.   

    对不起啊,类型有问题
    DataTable aaa=new DataTable();
    aaa.Columns.Add("col");
    DataRow drow=aaa.NewTable();
    drow[0]="11";
    Session["dd"]=aaa;
    DataTable bbb=(DataTable)Session["dd"];
    Response.Write(bbb.Rows[0][0].ToString());
    //"11"
      

  7.   

    顺便一个问题我经常用SESSION传DATAVIEW 和传DATATAble 谁好一点?为什么?
      

  8.   

    dataview是datatable的一个视图而已,没有datatable就没有dataview!,用的多的是dataView.
      

  9.   

    dim dt1 as databale
    DT1 = CType(  Session("DT1") , DataTable )
      

  10.   

    都这么多答案了,结吧~~~Session.add("DT",DataTable);DataTable dt= (DataTable)Session["DT"];