>我设置了网格视图,用户可以在其中"选择"他们想要的行,而该行又应该通过数据库并重定向它们。但是,当我为任何给定的结果行单击"选择"时,我在此行收到错误"输入字符串格式不正确":myEvent.EventID = Convert.ToInt32(row。细胞[0]。文本); 我把这件拿出来,我得到错误,里面有转换。所以我知道它写得不正确,但我不确定如何写它。任何帮助都会很棒!
对不起,我是新手!
我的 girdview 代码:
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
Event myEvent = new Event();
GridViewRow row = GridView1.SelectedRow;
myEvent.EventID = Convert.ToInt32(row.Cells[0].Text);
myEvent.Sport = row.Cells[1].Text;
myEvent.EventName = row.Cells[2].Text;
myEvent.Section = Convert.ToInt32(row.Cells[3].Text);
myEvent.TicketsAvailable = Convert.ToInt32(row.Cells[4].Text);
myEvent.EventDate = Convert.ToDateTime(row.Cells[5].Text);
Session["myEvent"] = myEvent;
Response.Redirect("Complete.aspx");
}
我的事件代码,以防您还需要它:
public class Event
{
public int EventID { get; set; }
public string EventName { get; set; }
public string Sport { get; set; }
public int Section { get; set; }
public int TicketsAvailable { get; set; }
public DateTime EventDate { get; set; }
}
只需检查天气,您正在转换的值不为空。 尝试调试代码并检查您从该特定行中获取的值是什么。
另一件事是,如果您在网格视图中创建了生成的选择按钮,则该选择按钮的位置位于网格视图的 0 单元格处。 因此,您可以像这样尝试代码。
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
Event myEvent = new Event();
GridViewRow row = GridView1.SelectedRow;
myEvent.EventID = Convert.ToInt32(row.Cells[1].Text);
myEvent.Sport = row.Cells[2].Text;
myEvent.EventName = row.Cells[3].Text;
myEvent.Section = Convert.ToInt32(row.Cells[4].Text);
myEvent.TicketsAvailable = Convert.ToInt32(row.Cells[5].Text);
myEvent.EventDate = Convert.ToDateTime(row.Cells[6].Text);
Session["myEvent"] = myEvent;
Response.Redirect("Complete.aspx");
}