Я работаю с Excel и C #.Я пытаюсь получить данные с помощью OleDbDataReader и напечатать «что-то», если выполняется условие «если».Условие if работает нормально, когда значения в ячейках Excel представляют собой все тексты.Распечатывает «что-то».Но если ячейка содержит какие-либо данные другого типа (щелкните правой кнопкой мыши по ячейке 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
Я хочу, чтобы условие if выполнялось независимо от того, какой тип данных находится в ячейке Excel, и печатать "что-то".Есть ли обходной путь для этого, так как мои данные будут содержать разные типы вещей, такие как дата, время, номер, включая текст?