如何获取所有的缓存项
 public static DataSet GetCacheByKey(string key)
 {
        //如何写
}

解决方案 »

  1.   

    /// <summary>
            /// 获取所有缓存对象的key
            /// </summary>
            /// <returns>返回一个IList对象</returns>
            public static IList<string> GetKeys()
            {
                List<string> keys = new List<string>();
                IDictionaryEnumerator cacheItem =HttpRuntime.Cache.GetEnumerator();
                while (cacheItem.MoveNext())
                {
                    keys.Add(cacheItem.Key.ToString());
                }
                return keys.AsReadOnly();
            }
      

  2.   

    如果你知道怎么添加缓存 就应该怎么获取return HttpRuntime.Cache[key] as DataSet
      

  3.   

    http://www.cnblogs.com/wenanry/archive/2008/08/13/1267028.html
      

  4.   


     <table border="0" rules="none" cellpadding="0" cellspacing="0" class="tablestyle1"
            width="100%">
            <tr class="head">
                <td width="50">
                    选择
                </td>
                <td width="200">
                    缓存项
                </td>
                <td width="100">
                    创建时间
                </td>
                <td>
                    持续时间(秒)
                </td>
                <td width="70">
                    绝对时间
                </td>
                <td width="50">
                    缓存依赖
                </td>
                <td width="50">
                    删除
                </td>
            </tr>
            <asp:Repeater ID="rptList" runat="server">
                <ItemTemplate>
                    <tr onmouseout='this.bgColor="#ffffff"' onmouseover='this.bgColor="#edf3f4"'>
                        <td align="center">
                                <input type="checkbox" id="chkKeyID" name="chkKeyID" value="<%#Eval("ID") %>" />
                        </td>
                        <td align="center">
                                <%#Eval("Key") %>
                        </td>
                        <td align="center">
                            <%#Eval("CreateTime")%>
                        </td>
                        <td align="center">
                            <%#Eval("IntMinutes") %>
                        </td>
                        <td align="center">
                            <%#Eval("Absolute") %>
                        </td>
                        <td align="center">
                            <%#Eval("Dependercy")%>
                        </td>
                        <td align="center">
                            <asp:LinkButton ID="lbDel" runat="server" CommandArgument='<%#Eval("key")%>' CommandName="Del"
                                OnClientClick="return confirm('确认删除当前数据吗?');" Text="删除"></asp:LinkButton>
                        </td>
                    </tr>
                </ItemTemplate>
            </asp:Repeater>
      

  5.   

    都看清楚再回答啊 ...要的是获取所有的缓存项 及其相关信息 形成一个DataSet
      

  6.   

    写个demo 你参考下,我缓存的是一个DataTable 对象    protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                bindGrid();
            }
        }    /// <summary>
        /// 获取用户信息
        /// </summary>
        DataTable BindUserMeg(string name)
        {
            DataTable dtUser = bll.GetUserMsg(name);
            return dtUser;
        }
        void bindGrid()
        { //查询记录缓存 DataTable
            DataTable dt = BindUserMeg("");
            Cache.Insert("DSN", dt, null, DateTime.Now.AddMinutes(2), System.Web.Caching.Cache.NoSlidingExpiration);        GridView1.DataSource = Cache["DSN"];
            GridView1.DataBind();
        }
        protected void Button1_Click(object sender, EventArgs e)
        {//linq模糊查询       DataTable dtA = (DataTable)Cache["DSN"];        var query = (from a in dtA.AsEnumerable()
                        let username = a.Field<string>("OrderTrackerUserName")
                        where username.Contains(TextBox1.Text)
                        select new {
                                        OrderTrackerID=a.Field<int>("OrderTrackerID"),
                                        OrderTrackerUserName =username,
                                        OrderTrackerRealName = a.Field<string>("OrderTrackerRealName")
                                   });        GridView1.DataSource = query;
            GridView1.DataBind();
        }