Я читаю данные из MS Access, используя C #. Но получите OleDbException, пытаясь выполнить такой запрос:
SELECT * FROM Flats
WHERE Flats.VersionStamp <= [theDate] AND Flats.Flat=[theFlat]
OleDbException:
Data type mismatch in criteria expression.
С другой стороны, любой из следующих запросов работает нормально:
SELECT * FROM Flats
WHERE Flats.VersionStamp <= [theDate] AND Flats.Flat=1
SELECT * FROM Flats
WHERE Flats.VersionStamp <= #1/1/2009# AND Flats.Flat=[theFlat]
Код C # остается неизменным:
DbParameter theFlat = new OleDbParameter("theFlat", 1);
DbParameter theDate = new OleDbParameter("theDate", new DateTime(2009, 1, 1));
using (DbDataReader reader = dbHelper.ExecuteReader(sqlText, theFlat, theDate))
{ }
Наконец, запрос может быть успешно выполнен непосредственно в пользовательском интерфейсе MS Access.
Что здесь не так?