代码之家  ›  专栏  ›  技术社区  ›  TheGeekYouNeed

无法将“System.Data.EnumerablerRowCollection”“1[System.Data.DataRow]”类型的对象强制转换为同一类型

  •  1
  • TheGeekYouNeed  · 技术社区  · 14 年前

    当我将代码发布到服务器(GoDaddy)时,我得到了这个错误,但是当我在代码中运行时,在本地得到了这个错误

    Unable to cast object of type
    'System.Data.EnumerableRowCollection`1[System.Data.DataRow]' to type 
    'System.Data.EnumerableRowCollection`1[System.Data.DataRow]'
    

    触发错误的代码是:

    foreach (DataRow dr in ds.Tables[0].Rows)
    {
       error occuring here ==>  var images = (from DataRow myRow in ds.Tables[1].AsEnumerable()
                       where (int)myRow["ProductID"] == Convert.ToInt32(dr["ProductID"])
                       select myRow);
    
    
                       Product product = new Product(dr, images);
                       productCollection.Add(product);
    
     }
    

    有什么建议吗?

    2 回复  |  直到 14 年前
        1
  •  0
  •   Henk Holterman    14 年前

    你是说引起错误的那一行吗?

     Product product = new Product(dr, images);
    

    但事实上,这种情况不会发生在您的开发系统上,而是仅在部署之后发生,这表明程序集不同步。在服务器上重建和/或确保推出 组件。

        2
  •  0
  •   Lukas    12 年前

    我有一个非常相似的东西,花了几个小时把我的头围绕着它。在我的情况下,我有

    EnumerableRowCollection<DataRow> ercBarriers = tblReviewInfo.AsEnumerable().Cast<DataRow>().Where(x => !string.IsNullOrEmpty(x["Outcomes"].ToString()));