首页新闻找找看学习计划

隐式转换问题!请各位大哥帮帮忙!小弟感激不尽

0
悬赏园豆:50 [已关闭问题]

 无法将类型“System.Collections.Generic.IList<Model.Leval>”隐式转换为“Model.Leval”。存在一个显式转换(是否缺少强制转换?) 

 

这句代码:empInfo.Empleval = new HotelDAL.HotelLevalService().GetLevalByID(Convert.ToInt32(reader["Empleval"].ToString()));

 

Empleval是一个对象.

相关的HotelLevalService().GetLevalByID方法如下:

public IList<Leval> GetLevalByID(int levalId)
        {
            string strSql = "select * from Leval where LevalId = @LevalId";
            SqlParameter[] param = {
                new SqlParameter("@LevalId",levalId)
            };
            return this.Default(strSql, param);
        }

 

        private IList<Leval> Default(string strSql, SqlParameter[] param)
        {
            DataTable tb = DBHelper.GetDataTable(strSql, param);
            IList<Leval> list = new List<Leval>();

            foreach (DataRow row in tb.Rows)
            {
                Leval leval = new Leval();

                leval.Levalid = Convert.ToInt32(row["LevalId"].ToString());
                leval.Levalname = row["LevalName"].ToString();

                list.Add(leval);
            }
            return list;
        }

 

 

请各位高手帮我解决下.我是一名初学者

VIgoss的主页 VIgoss | 初学一级 | 园豆:0
提问于:2009-04-23 17:14
< >
分享
其他回答(2)
0

楼主,你要搞清一个问题,System.Collections.Generic.IList<Model.Leval>是一个集合,而Model.Leval是单个对象,一群东西能赋值给一个东西吗?

所以要么修改方法GetLevalByID让他只返回一个,

Code

或者:

empInfo.Empleval = new HotelDAL.HotelLevalService().GetLevalByID(Convert.ToInt32(reader["Empleval"].ToString()))[0];

i.Net | 园豆:4 (初学一级) | 2009-04-23 17:38
0

楼上的不错!那你试试吧!

子夜星辰 | 园豆:1613 (小虾三级) | 2009-04-23 17:45
0

empInfo.Empleval = new HotelDAL.HotelLevalService().GetLevalByID(Convert.ToInt32(reader["Empleval"].ToString())).First();

James.Ying | 园豆:1472 (小虾三级) | 2009-04-24 15:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册