protected void ButAdd_Click(object sender, EventArgs e)//添加按钮
    {
        Model.Goods goods = new Model.Goods();
        string GoodsType = DdlAddType.SelectedValue.ToString().Trim();//获取下拉列表框所选的类型名称
        goods.TypeID = Convert.ToInt32(BLL.GoodsManager.getTypeId(GoodsType).Tables[0].Rows[0][0]);//将类型名 称传入getTypeId方法,获取TypeID
    }
Goods是个商品类,它有个int型字段TypeID,TypeID与商品类型表tbl_type中的TypeID关联,在业务层BLL.GoodsManager类中有下面这个方法:public static DataSet getTypeId(string GoodsType) //获取TypeID并返回一个dataset
        {
            string sql = "select id from tbl_type where type_name='" + GoodsType + "'";
            DataSet ds = DAL.DBHelper.getDS(sql);
            return ds;
        }
 为什么在点添加按钮后,编译器老是报错,无法将类型“int”隐式转换为“string”,错误的就是:
 goods.TypeID = Convert.ToInt32(BLL.GoodsManager.getTypeId(GoodsType).Tables[0].Rows[0][0]);这句,
请大家帮忙看看啊,谢谢了。

解决方案 »

  1.   

    TypeID 类型是什么
    int需要显式转化为string,对你这行代码中的int,使用Convert.ToString()
      

  2.   

    goods.TypeID = Convert.ToInt32(BLL.GoodsManager.getTypeId(GoodsType).Tables[0].Rows[0][0]["TypeID"].toString());//
      

  3.   

    goods.TypeID = Convert.ToInt32(BLL.GoodsManager.getTypeId(GoodsType).Tables[0].Rows[0][0].ToString());
      

  4.   

    BLL.GoodsManager.getTypeId(GoodsType).Tables[0].Rows[0][0] 
    断点调试一下 这个部分 返回的类型,看看是不是 Object的。
      

  5.   

    无法将类型“int”隐式转换为“string”,
    这个提示是哪个参数报的?
    都有详细提示`你设个断点跟踪一下
      

  6.   

    goods.TypeID = Convert.ToString(BLL.GoodsManager.getTypeId(GoodsType).Tables[0].Rows[0][0]);
    很显然,goods.TypeID 是string类型的
      

  7.   

     string GoodsType = DdlAddType.SelectedValue.ToString().Trim();//获取下拉列表框所选的类型名称
    SelectedValue 这个本身就是INT 类型
    getTypeId(GoodsType). 看看你这个方法传入的是不是INT 类型
    如果是 就将上面
    int GoodsType = DdlAddType.SelectedValue;
      

  8.   

     goods.TypeID = Convert.ToInt32(BLL.GoodsManager.getTypeId(GoodsType).Tables[0].Rows[0][0]).ToString();
      

  9.   

     goods.TypeID = Convert.ToInt32(BLL.GoodsManager.getTypeId(GoodsType).Tables[0].Rows[0][0].ToString());