2

我设置了gridview,用户可以在其中“选择”他们想要的行,而这些行又应该通过数据库并重定向它们。但是,当我为任何给定的结果行单击“选择”时,我在此行收到错误“输入字符串格式不正确”: myEvent.EventID = Convert.ToInt32(row.Cells[0].Text); 我把这件作品拿出来,我得到了永远与 Convert 一致的错误。所以我知道它写得不正确,但我不确定如何写。任何帮助都会很棒!

抱歉,我是新手!

我的 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; }
}
4

1 回答 1

0

只需检查天气,您要转换的值不为空。尝试调试代码并检查您从该特定行获得的值是什么。

另一件事是,如果您在 gridview 中创建了生成的 Select Button,则该选择按钮的位置位于 gridview 的 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");
    }
于 2012-12-09T06:11:10.407 回答