C# 无法将类型为“ASP.Catalog\U aspx”的对象强制转换为类型为“System.Web.UI.WebControl.LinkButton”
我正在从数据库中检索我的toyName,并希望将其会话到下一页。我的会话没有任何错误,但我有如下错误,我不确定哪里出了错。在我的.aspx页面中有2个链接按钮,而这个出现错误的链接按钮是我创建的第二个链接按钮 错误消息:C# 无法将类型为“ASP.Catalog\U aspx”的对象强制转换为类型为“System.Web.UI.WebControl.LinkButton”,c#,asp.net,sql,C#,Asp.net,Sql,我正在从数据库中检索我的toyName,并希望将其会话到下一页。我的会话没有任何错误,但我有如下错误,我不确定哪里出了错。在我的.aspx页面中有2个链接按钮,而这个出现错误的链接按钮是我创建的第二个链接按钮 错误消息: Unable to cast object of type 'ASP.Catalogue_aspx' to type 'System.Web.UI.WebControls.LinkButton'. 源错误: Line 13: protected void Page_L
Unable to cast object of type 'ASP.Catalogue_aspx' to type 'System.Web.UI.WebControls.LinkButton'.
源错误:
Line 13: protected void Page_Load(object sender, EventArgs e)
Line 14: {
Line 15: LinkButton LinkButton = (LinkButton)sender;
Line 16: int toyID = Convert.ToInt32(LinkButton.CommandName);
Line 17:
这是我的页面加载.cs代码:
protected void Page_Load(object sender, EventArgs e)
{
LinkButton LinkButton = (LinkButton)sender;
int toyID = Convert.ToInt32(LinkButton.CommandName);
string strConnectionStr = ConfigurationManager.ConnectionStrings["ASPNETConnectionString"].ConnectionString;
string sql = "SELECT toyID, toyName FROM Toys WHERE toyID=@toyID";
SqlConnection myConnect = new SqlConnection(strConnectionStr);
myConnect.Open();
SqlCommand command = new SqlCommand(sql, myConnect);
command.Parameters.AddWithValue("@toyID", toyID);
SqlDataReader dr = command.ExecuteReader();
while (dr.Read())
{
Label1.Text = dr["toyName"].ToString();
}
dr.Close();
myConnect.Close();
}
那是完全错误的
页面加载的发件人是页面,而不是链接按钮。您不能将页面强制转换为链接按钮。。那是行不通的。 当您在页面加载中强制转换发件人时,从技术上讲,您是在强制转换页面 如果要使用会话,则需要将
session["something"]= what ever you are trying to save
然后去取回它
var myVariable = session["something"] (maybe cast this as something)
除此之外,我不确定您想做什么,但每次用户加载页面时,我都会尝试检索toyName。我有2个页面。首先,我试图从数据库中检索我的toyName,并将该值存储为会话变量,然后将其传递到我的第二个页面。我想使用这个方法,因为我的数据库中有很多toyNames。这两个页面的功能是,当用户第一次看到第一个页面时,可以选择他们想要的玩具。当他们进入第二个页面时,他们从第一个页面中选择的唯一toyName将被传递到第二个页面以进行支付。