当OleDbDataReader从Excel读取多种数据类型时,如何防止“数据不匹配”异常? (常规,日期,时间,百分比等)

时间:2019-03-25 21:29:09

标签: c# excel oledb datareader

我正在使用excel和C#。我正在尝试使用OleDbDataReader检索数据并在满足“ if”条件的情况下打印“ something”。 当excel单元格中的值都是文本时,if条件可以正常工作。它打印出“内容”。但是,如果单元格包含其他任何类型的数据(右键单击excel单元格,然后单击单元格格式以查看您的类型),例如“日期”或其中包含数字的任何内容,则不会检查if条件。给出了数据不匹配的例外情况。

根据我的理解,OleDbData仅在有文本时起作用,而在有其他类型的数据时引发异常。

这段代码可能提供了我要完成的工作的构想。

    OleDbConnection file1_connection = new OleDbConnection(file1_conn);
    file1_connection.Open(); 
    .
    .
    //other code irrelevant to the problem
    .
    . 

    string extractfile1Query = "SELECT * from [Sheet1$] WHERE " + file1_Header 
                                 + "='" + file1_rowVal + "'";
    OleDbCommand file_getRowCommand = new OleDbCommand(extractfile1Query, 
                                       file1_connection);
    OleDbDataReader file1_getRowReader = file1_getRowCommand.ExecuteReader();

     if (file1_getRowReader.HasRows)
                                      {

                                         Debug.WriteLine("something")
                                      }

//file1_Header and file1_rowVal are defined in other parts of code

我希望无论Excel单元格中哪种数据类型都执行if条件,并显示“ something”。 因为我的数据将包含日期,时间,数字等其他类型的内容(包括文本),因此是否可以解决此问题?

0 个答案:

没有答案