有两个类Foreigner,ForeignerView  Foreigner中封装的GJDQ 类型为INT   ForeignerView 中封装的GJDQ类型为STRING
有一个ArrayList list 中存的是ForeignerView的对相
在 foreach (Foreigner fo in list)
      {      }时就会出错  无法将类型为“数据录入系统.Model.ForeignerView”的对象强制转换为类型“数据录入系统.Model.Foreigner”。 帮下忙吧!!!

解决方案 »

  1.   

    Foreigner,ForeignerView你这两个存的都是不同类型的数据啊,肯定不行啦
      

  2.   

    foreach里面的代码是什么?
    这个是类之间的转换
      

  3.   


    Foreigner中GJDQ存的是ID
    ForeignerView  中本来存的是名称  后来通过名称查到ID号  就存的ID号了
      

  4.   

    LIST存的是ForeignerVie的对相   是从EXCEL中读出来的foreach里的的代码是 将数据插到数据库中
      

  5.   

    foreach (Foreigner fo in list) 
          { 
    这里你可以转换fo.GJDQ来存数据库,,可能要把string转成int
          }
      

  6.   

    foreach (Foreigner fo in list)
                {                string sqlstr = "insert into ga_wjry wjry_gjdq values @gjdq"
                    SqlParameter[] parms =
                            {                            new SqlParameter("@gjdq", SqlDbType.Int),                        };                parms[5].Value = Convert.ToInt32( fo.Gjdq);                SQLHelper.ExecuteSql(sqlstr, parms);
                    
                }
    这样写还是会出现同样的错误
      

  7.   

    两个类是否完全一致?
    可以的话使用接口如何?
    6L的代码错误在哪?parms[5].Value = Convert.ToInt32( fo.Gjdq); 吗?试试parms[5].Value = int.Parse( fo.Gjdq);