c# - 将包含 DataSet 的 Object (var) 转换为实际的 DataSet
问题描述
我在 Session 中存储了一个 DataSet,它当前存储为一个对象。我用谷歌搜索和尝试各种方法使我可怜的大脑变得紧张。
需要有关如何操作的帮助。
完整代码粘贴:
protected void Page_Load(object sender, EventArgs e)
{
if (HttpContext.Current.Session.Contents["StatusInformation"] == null)
{
DataSet ATServerURLList = new DataSet("ATServerURLList");
ATServerURLList.Tables.Add(Populate.ReturnURLList());
Session["StatusInformation"] = new DataSet();
Session["StatusInformation"] = XMLManager.RetrieveXML(ATServerURLList);
Session["TimeXMLRetrieved"] = new DateTime();
Session["TimeXMLRetrieved"] = DateTime.Now;
}
DateTime DateTimeNowForComparison = DateTime.Now; //Gets TimeNow for Comparison
var TimeXMLRetrievedVar = Session["TimeXMLRetrieved"]; //Pulls the time the last XML was retrieved and stores it in a variable
DateTime TimeXMLRetrievedDateTime = Convert.ToDateTime(TimeXMLRetrievedVar); //Takes the Time XML was retrieved and stores it in a DateTime
TimeSpan ComparisonResult = DateTimeNowForComparison.Subtract(TimeXMLRetrievedDateTime); //Subtracts the time the XML was retrived from the TimeNow
if (ComparisonResult.TotalHours > 12)
{
DataSet ATServerURLList = new DataSet("ATServerURLList");
ATServerURLList.Tables.Add(Populate.ReturnURLList());
Session["StatusInformation"] = new DataSet();
Session["StatusInformation"] = XMLManager.RetrieveXML(ATServerURLList);
Session["TimeXMLRetrieved"] = new DateTime();
Session["TimeXMLRetrieved"] = DateTime.Now;
}
//这里一切都很好,不需要上面的帮助。只需要将 var dsServersVar 从存储在 Session 中的 DataSet 转换为实际的 DataSet。
var dsServersVar = Session["StatusInformation"];
//gridStatusCustomersOverviewNotPaid.DataSource = dsServers.Tables["StatusCustomersOverviewNotPaid"];
//gridStatusCustomersOverviewNotPaid.DataBind();
}
我目前已经尝试过 Converter、Convert 和 Convert.ChangeType。
解决方案
您唯一需要的是演员表:
DataSet dsServersVar = (DataSet)Session["StatusInformation"];
我通常通过引入一个包含会话变量并使其易于访问的类来解决此问题。
就像是:
public static class SessionVariables
{
public static DataSet StatusInformation
{
get
{
return (DataSet)HttpContext.Current.Session["StatusInformation"];
}
set
{
HttpContext.Current.Session["StatusInformation"] = value;
}
}
}
推荐阅读
- javascript - 如何一次使用 translateY 到连续的显示元素?
- mysql - 作为用户的教师、学生和管理员的子类型/超类型
- accessibility - WCAG 2.1 AA 合规性和用户生成的内容 - 您如何处理不受您控制的内容?
- python - 更改 python 代码以飞溅图像
- html - 无法在 AngularJs 中的另一个自定义指令中调用自定义指令
- amazon-web-services - Jmeter Cookie 管理器对 AWS 粘性会话的影响
- c++ - 对象和多线程的多个实例的线程安全
- azure - 是否可以在 Azure DevOps 中为我已经部署在其他地方的网站运行 selenium webdriver 自动化测试?
- php - 输入密码:mysqldump:出现错误:1045:尝试连接时用户'XXX'@'localhost'的访问被拒绝(使用密码:NO)
- javascript - 有没有办法(以编程方式)区分箭头函数和常规函数?