Ошибка OLEDB E_OUTOFMEMORY (0x8007000E) при попытке вставить в базу данных Access с c# - PullRequest
0 голосов
/ 10 февраля 2020

Я просто хотел опубликовать свой вопрос / решение для глубокой проблемы, с которой мы только что столкнулись и решили.

Я не нашел никакого прямого ответа на inte rnet, кроме CLUE здесь: http://members.iiug.org/forums/ids/index.cgi/noframes/read/2476

Большая картинка, у нас есть старая WinForm (c#) приложение запущено для одного из наших клиентов. приложение подключается к базе данных MS Access (формат 2007, beeing MyDatabase.accdb). Приложение работало просто отлично в течение последних лет! Этим утром клиент позвонил мне и сказал, что в заголовке вопроса обнаружена ошибка. произошла ошибка при попытке вставить в TABLE.

Строка подключения довольно проста: 'Provider = Microsoft.Ace.OLEDB.12.0; Источник данных = Path \ MyDatabase.accdb'

Я подозреваю, Windows Обновление, которое разбило мое приложение ...

1 Ответ

0 голосов
/ 10 февраля 2020

КОРОТКО ДОЛГОЙ ИСТОРИИ (3 часа глубокого исследования, проб и ошибок и т. Д. c ...): в таблице было около 40 столбцов. все «идентификаторы» в Access были «Длинное целое», а вставка производилась с помощью команды OleDbCommand с множеством параметров. Параметры для «Длинного целого» были OleDbType.BigInt. Ни один идентификатор не был больше 1000 ....

Решение: я только что изменил OleDbType на OleDbType.Integer, и все заработало.

...