Я пытаюсь вставить некоторые календарные даты в базу данных Access, используя C #.К сожалению, это не работает по какой-то причине.Проблема в том, что код работает абсолютно идеально на компьютерах моей средней школы, работающих под управлением Office 2007, Windows 7. Когда я запускаю тот же код на своем ноутбуке с Windows 10, я получаю сообщение об ошибке:
System.Data.OleDb.OleDbException: 'Несоответствие типов данных в выражении критериев.'
Однако календарные даты задаются в кратком формате в базе данных.
Я уже пытался преобразовать строки, которые я пытаюсь вставить в базу данных.Вот некоторые из преобразований, которые я пробовал:
Convert.ToDateTime(itemi[1]);
DateTime.Parse(itemi[2]);
DateTime.ParseExact(itemi[2], "d", null);
Где itemi[2]
- одна из строк, записанных в формате календарной даты.
Например: itemi[2] = "02.05.2017";
или itemi[2] = "05.08.2019";
Я также пытался изменить символы .
, найденные в строке itemi[2]
, на символы /
, но безуспешно.Я даже пытался использовать функцию Trim()
, чтобы в строке не было пробелов.Мой профессор также не смог найти решения этой проблемы, и мы часами просматривали код и искали в интернете безрезультатно.
Вот код с описанной проблемой (соединение с базой данных уже было открыто несколькими строками кода ранее, но я считаю, что это неактуально, поэтому я не включаю его в упомянутый код):
var query = "INSERT INTO Planificari (Frecventa, DataStart, DataStop, IDLocalitate) "
+ "VALUES ('" + itemi[1].Trim() + "', '" + itemi[2].Trim()
+ "', '" + itemi[3].Trim() +"', " + idLocalitate + ")";
OleDbCommand command = new OleDbCommand(query, connection);
command.ExecuteNonQuery(); // this is the point I get the mentioned error
// DataStart and DataStop are the calendar dates
// in my access 2016 database