Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.08.2013, 11:38   #1
Predatore
 
Регистрация: 19.07.2009
Сообщений: 6
По умолчанию Excel и ADO

Доброго времени суток товарищи!
Подключаюсь к Excel через ADO и имею очень не приятную проблему с параметром IMEX в строке подключения. Данный параметр, насколько я понял, отвечает за типы данных, которые будут извлекаться из Excel, если IMEX=1, то все данные будут интерпретировать как текстовые, если IMEX=0 (по умолчанию) то тип данных будет вычислен по первым нескольким строкам. В моём случае он не правильно вычисляет тип данных для большинства столбцов, а это ведёт к тому, что я не могу прочитать эти данные.
Т.е. для того что бы нормально работать с файлом я вынужден ставить IMEX=1 и всё хорошо до того момента, как я захочу записать данные. При попытке вызова UPDATE я получаю ошибку: "В операции должен использоваться обновляемый запрос."
При IMEX=0 UPDATE работает "нормально". Почему в кавычках? Потому что те ячейки которые я не могу прочитать (на самом деле они читаются как пустые) из-за IMEX=0, я не могу и обновить, только тут уже выдаётся ошибка: "Невозможно обновить поле '(выражение)'; не обновляемое поле."
Как можно решить эту проблему? Работать с Excel через Microsoft.Office.Interop.Excel чертовски медленно.

Немного кода.
Строка подключения:
string constr = String.Format("Provider=Microsoft.J et.OLEDB.4.0;Mode=ReadWri te;Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\"; Data Source={0}", filename);

UPDATE:
string select = String.Format("UPDATE [{0}] SET {1} = {2} WHERE {3} = {4}", sheet, fieldName, value, filterField, filterValue);
command.CommandText = select;
command.ExecuteNonQuery();

Последний раз редактировалось Predatore; 06.08.2013 в 11:41.
Predatore вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подключения к Excel исполбзуя ADO: разные версии файлов excel VVkSoft БД в Delphi 0 27.09.2012 00:34
ADO и Excel берется первая строка Tomatos БД в Delphi 3 17.02.2011 19:25
ADO + бд в Excel Aiden Microsoft Office Excel 3 20.04.2010 18:37
Вставка данных в Excel через ADO Slava БД в Delphi 4 19.07.2009 22:22