我正在使用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”。 因为我的数据将包含日期,时间,数字等其他类型的内容(包括文本),因此是否可以解决此问题?