当前位置:  开发笔记 > 开发工具 > 正文

LinqToExcel - 导致Object的InvalidCastException必须实现Iconvertible错误

如何解决《LinqToExcel-导致Object的InvalidCastException必须实现Iconvertible错误》经验,为你挑选了1个好方法。

我正在使用以下代码查询LinqToExcel中的excel文件:

var excelFile = new LinqToExcel.ExcelQueryFactory(@"\"+txtFileName.Text.Replace(@"\\",@"\"));

var properties = from p in excelFile.Worksheet()
                 where AssessmentID != null
                 select p;
foreach (var autoP in properties)
        doSomething();

当我查看运行时调试器时,我会在查看属性变量的"结果视图"时看到"InvalidCastException" .所以,我假设我的班级定义有一些时髦的东西.我还假设我不需要将类的所有成员映射到excel文件,而只需要我认为合适的那些.
所以,这里也是类定义:

public class Property
{

    [DataMember]
    public int? Year { get; set; }

    [DataMember]
    public string ChangeReason { get; set; }

    [DataMember]
    public string AssessmentID { get; set; }

    [DataMember]
    public string CallBackNotes { get; set; }

    [DataMember]
    public string InspectionNotes { get; set; } 

    [DataMember]
    public string Notes { get; set; }

    [DataMember]
    public bool Authorization { get; set; }

    [DataMember]
    public string ChargeStatus { get; set; }

    [DataMember]
    public string LegalLandDesc { get; set; }

    [DataMember]
    public string Address { get; set; }
    }

这里是gitHub上linqToExcel源代码的链接:LinqToExcel 泛型比我看到的更复杂,并且是我(显然)需要了解的东西.

有什么东西明显我错过会引起这个问题吗?关于在哪里寻找或如何解决这些错误的任何想法?



1> Rolan..:

查询的where子句是导致错误的原因.它引用了null关键字,该关键字在上下文中不适用.我改成了:

where  !String.IsNullOrEmpty(p.AssessmentID) 

这解决了我的问题.

自我注意:从其他人继承代码时,请先检查基础知识!

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有