System.InvalidCastException:指定的强制转换无效C#

时间:2014-03-30 03:34:48

标签: c# oracle visual-studio-2012 sqlplus

你能帮忙解决这个错误吗?我按照教程为我的项目创建了一个论坛,但是我收到了上述错误。感谢您提出任何建议。 错误行:

Int64 Forum_Id = (Int64)GridView1.SelectedValue;

我的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Forum : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        string course_Id = DropDownList1.Text;
        int ccourse_Id = Convert.ToInt32(course_Id);
        string question = TextBox1.Text;
        string posterName = TextBox2.Text;
        DateTime blog_date = DateTime.Now;
        PostForum.INSERTforum(ccourse_Id, question, posterName, blog_date);

        GridView1.DataBind();
        }



    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        Int64 Forum_Id = (Int64)GridView1.SelectedValue;


        Session["forum_Id"] = Forum_Id;


        Response.Redirect("Thread.aspx");
    }

    protected void Button2_Click(object sender, EventArgs e)
    {

    }
}

在我的数据库中,我有一个名为Forum的表,其中forum_id为Integer not null

3 个答案:

答案 0 :(得分:2)

试试这个:

Int64 Forum_Id = Convert.ToInt64(GridView1.SelectedValue.ToString());

答案 1 :(得分:1)

SelectedValue可能不是Int64。尝试解析以获取数值。

Int64 Forum_Id;
Int64.TryParse( GridView1.SelectedValue.ToString(), out Forum_Id);

答案 2 :(得分:0)

如果您确定所选值仅包含数字字符,则可以使用以下行。

Int64 value = Int64.Parse(GridView1.SelectedValue.ToString());

否则,它会引发异常。