日期:2014-05-17  浏览次数:20494 次

asp.net的Cache的数据如何读取呢?
我在A页面里面。
C# code

 DataTable dt = B_Product.Instance.getBasicDataTable();
 Cache.Insert("ProductData", dt);
在A页面中提交了一这个数据集的ID到B页面


在B页面里面要读取Cache里面的数据
C# code

在这里怎么通过A页面的ID向cache里面获取那一行的数据呢
        if (this.Cache!=null)
            {
                this.txtProductClassID.Text = this.Cache.Get("ProductID").ToString();
            }


这样读不到数据。


------解决方案--------------------
dt是个DateTabe类型 你把它tostring取到是他的类名字 有两种做法 
1:放cache里面的数据放你DateTable里面ProductID本身的值而不是整个datatable
2:取数据的时候
var dt=this.Cache.Get("ProductID") as DataTable;
取dt里面Product的值
------解决方案--------------------
Sorry没看仔细 不过你的代码还是有问题
你把数据放到Cache里面用的键值是ProductData,但是你取cache的时候用的是键值ProductID, 这肯定取不到数据 而且我怀疑这里面是不是应该报个异常
------解决方案--------------------
转换后,如何通过传过来的ID对这个dataTable值进行找到相应行的数据呢?
-------------------------------------------------------
 var dt = this.Cache.Get("ProductData") as System.Data.DataTable;
System.Data.DataRow[] row= dt.Select("ID="+ID);
var ProductName= row[0]["ProductName"].ToString();
------解决方案--------------------
你那个是字符串的话需要引号 dt.Select("ID='" + ID+"'");