繁体   English   中英

C#无法将类型System.DBNull隐式转换为字符串

[英]C# Cannot implicitly convert type System.DBNull to string

需要一点帮助,我试图从工作表中提取数据,但出现上述错误。 它发生在字符串文本行上。 我该怎么做才能转换此值或忽略null?

     var excel = new Microsoft.Office.Interop.Excel.Application();
     Workbook workbook =  excel.Workbooks.Open(@"C:\Documents\ANIs.xlsx");
     Worksheet worksheet = workbook.Worksheets[1];

        Range a1 = worksheet.get_Range("A1","B2");

        object rawValue = a1.Value;
        string Text = a1.Text; //<--Error Occurs here. 

        for (int i = 0; i < a1.Count; i++)
        {
            if (a1.Text != null)
                Console.WriteLine("{1}", rawValue, Text);
        }
        Console.ReadLine();
    }

提前致谢。

基本上,您需要一个条件语句。 如果在某些类型上调用ToString() ,则为Null时将抛出异常。 最简单的补救方法是:

if(!(a1 is DBNull))
{
     // Do Something
}

希望这可以澄清一点。

// Sample:
var range = worksheet.get_Range("A1","B2");
if(!(range is DBNull))
{
     object raw = range.Value;
     string text = range.Text;

     // Loop here
}

另外,您也不必将“ Text用作大写字母,该Text是预定义的,也不能用作变量。 代码中的另一个错误。 请注意注释,@ RonBeyer对正在使用的Text说了什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM