[英]weird dataset in asp.net
I have built a dataset named Transaction_Time
. 我建立了一个名为Transaction_Time
的数据集。
I called it on Page_Load
我在Page_Load
上称它为
Transaction_Time tranTme = new Transaction_Time();
put it in the session. 将其放在会话中。
Session["Transaction"] = tranTme;
Then I call that session and cast to dataset. 然后,我调用该会话并将其转换为数据集。
DataSet dstTranTime = (DataSet)Session["Transaction"];
I got the following error. 我收到以下错误。
Unable to cast object of type 'Transaction_Time' to type 'System.Data.DataSet'. 无法将类型为“ Transaction_Time”的对象转换为类型“ System.Data.DataSet”。
[InvalidCastException: Unable to cast object of type 'Transaction_Time' to type 'System.Data.DataSet'.]
Transaction_Time.Page_Load(Object sender, EventArgs e) in c:\Inetpub\wwwroot\William29_11_2010\Transaction_Time.aspx.cs:47
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627
It is OK for some other pages. 其他页面也可以。 But for some page, it doesn't. 但是对于某些页面却没有。
Is it something wrong that I do or.. ??? 我做错什么了吗?
You put in typeof(Transaction_Time) and try to get out typeof(DataSet). 您放入typeof(Transaction_Time)并尝试删除typeof(DataSet)。 this will fail until Transaction_Time is not derived from DataSet. 这将失败,直到没有从DataSet派生Transaction_Time。 Try to read Transaction_Time instead of DataSet. 尝试读取Transaction_Time而不是DataSet。
Transaction_Time tranTme = new Transaction_Time();
....
Session["Transaction"] = tranTme;
....
Transaction_Time dstTranTime = Session["Transaction"] as Transaction_Time;
if (dstTranTime == null)
System.Dignostics.Trace.WriteLine("Ups! Expecting Transaction_Time, but got {0}", Session["Transaction"] );
It looks like you may have two classes called Transaction_Time. 看起来您可能有两个名为Transaction_Time的类。 If you have created a class called Transaction_Time and derived it from DataSet AND you have a class called Transaction_Time that is derived from, say, Page. 如果您创建了一个名为Transaction_Time的类并从DataSet派生,则您有一个名为Transaction_Time的类,该类派生自例如Page。 Then the compiler may be confused about which you mean and you may occasionally be storing the page Transaction_Time rather than the DataSet Transaction_Time. 然后,编译器可能会混淆您的意思,并且您有时可能会存储页面Transaction_Time而不是DataSet Transaction_Time。
Be explicit when creating the Transaction_Time class and use the fully qualified name OR rename one of your classes so that the name is not ambiguous. 在创建Transaction_Time类时使用显式名称,并使用完全限定名称或重命名您的一个类,以使名称不模糊。 That should solve your problem (assuming my assumptions are correct). 那应该可以解决您的问题(假设我的假设是正确的)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.