Using HttpContext.Current.Cache?
本文关键字:Cache Current HttpContext Using | 更新日期: 2023-09-27 18:10:03
我是新来的HttpContext.Current.Cache,我发现了一些实现它的例子,我有一些问题。有人知道是什么导致了这个问题吗?我可能完全用错了,但我已经尽我所能做了很多研究。
我得到Value cannot be null.
为sda.fill(dt);所以我假设我的DataTable没有创建一个新的实例。
SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["Test"].ConnectionString);
SqlCommand command = new SqlCommand(
"SELECT Sequence, Column_Name FROM dbo.SD_Fields", connection);
DataTable dt = HttpContext.Current.Cache["1234"] as DataTable;
SqlDependency dependency = new SqlDependency(command);
dependency.OnChange += new OnChangeEventHandler(OnDependencyChange);
SqlDependency.Start(ConfigurationManager.ConnectionStrings["Test"].ConnectionString);
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = command;
sda.Fill(dt);
// SqlDependency.Stop(ConfigurationManager.ConnectionStrings["Test"].ConnectionString);
return dt;
很可能您一开始就没有给缓存添加值。在代码的某个地方应该有一个调用来将值放入缓存(在尝试获取一个之前),如:
HttpContext.Current.Cache["1234"] = new DataTable(...);
请注意,通常您检查是否有缓存值,如果没有,则创建新值(或从需要的地方获取值)。