获取DataColumn值时,指定的强制转换无效

时间:2013-07-24 11:21:36

标签: c# asp.net

我有这样的代码:

private void FillMenu()
{
    int i;

    string sql = "Select * from tblMenu where MenuGrup=1 order by SiraNo";

    DataTable dt = ExecSqlDT(sql);

    if (dt.Rows.Count == 0)

        return;

    for (i = 0; i <= dt.Rows.Count - 1; i++)
    {

        DevExpress.Web.ASPxNavBar.NavBarGroup xGrp = new DevExpress.Web.ASPxNavBar.NavBarGroup();
        xGrp.Text = dt.Rows[i]["MenuAd"].ToString();
        if (!dt.Rows[i]["HeaderResimUrl"].ToString().Equals(""))
            xGrp.HeaderImage.Url = dt.Rows[i]["HeaderResimUrl"].ToString();
        if (!dt.Rows[i]["ItemResimUrl"].ToString().Equals(""))
            xGrp.ItemImage.Url = dt.Rows[i]["ItemResimUrl"].ToString();
        if (!dt.Rows[i]["Genisletilmis"].ToString().Equals("1"))
        {
            xGrp.Expanded = false;
        }
        else
        {
            xGrp.Expanded = true;
        }
        ASPxNavBar1.Groups.Add(xGrp);
        FillMenuGroup(xGrp, (long)dt.Rows[i]["MenuID"]);

    }
}

当我运行我的项目时,它在此时断开:

FillMenuGroup(xGrp, (long)dt.Rows[i]["MenuID"]);
  

“指定的演员表无效”

我该怎么办?

1 个答案:

答案 0 :(得分:0)

你可以试试看它是否有效:

 FillMenuGroup(xGrp, Convert.ToInt64(dt.Rows[i]["MenuID"]));