Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
wm_leviathan
196 / 198 / 69
Регистрация: 12.01.2011
Сообщений: 699
Завершенные тесты: 2
1

Закрыть соединение к файлу Mdb после его создания

29.01.2014, 16:06. Просмотров 860. Ответов 10
Метки нет (Все метки)

Добрый день всем, как закрыть соединение к файлу? после создания мне необходимо удалить его но выдает ошибку "не возможно удалить файл так как он занят другим процессом."
C#
1
2
3
4
5
6
ADOX.Catalog cat = new ADOX.Catalog();
                cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileMdb + ";Jet OLEDB:Engine Type=5");
 
                Marshal.ReleaseComObject(cat);
                cat = null;
                GC.Collect();
смотрел пример на сайте MS там достаточно только cat=null; Но после создания все равно мое приложение держит его открытым.
C#
1
2
cat.ActiveConnection = null;
                cat = null;
аналогично проходит без ошибок но файл по прежнему открыт. в чем проблема то ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2014, 16:06
Ответы с готовыми решениями:

Как освоодить доступ к файлу после загрузки его в Image?
Ситуация такая - загружаю джипег в Image ( Image i = Bitmap.FromFile(name) )....

Блокирование файла после его создания
Привет. помогите решить пробелму, ато уже голова взрываеться:) Есть файл...

Закрыть соединение с локальной БД
Здравствуйте! Подскажите, пожалуйста. В своей программе использую локальную...

Закрыть соединение GridView с БД Access
Привязал элемент GridView к БД Access. Но теперь БД все время открыта. Вручную...

Открыть\закрыть доступ к папке файлу
Добрый вечер.Написал программку для открытия,закрытия доступа к папке. using...

10
wm_leviathan
196 / 198 / 69
Регистрация: 12.01.2011
Сообщений: 699
Завершенные тесты: 2
01.02.2014, 15:04  [ТС] 2
проблема решена, сделал так:
C#
1
2
3
4
5
6
ADOX.Catalog cat = new ADOX.Catalog();
                cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileMdb + ";Jet OLEDB:Engine Type=5");
                ADODB.Connection con = cat.ActiveConnection as ADODB.Connection;
                if (con != null)
                con.Close();
                cat = null;
0
PowerCat
-14 / 2 / 1
Регистрация: 19.09.2013
Сообщений: 445
21.12.2016, 15:55 3
Не понял, как автор решил проблему ((( Поясните плз.
0
Igr_ok
406 / 379 / 183
Регистрация: 04.08.2015
Сообщений: 1,053
21.12.2016, 16:09 4
Где-то в коде у автора не закрывалось соединение с файлом. Поэтому он получает Connection из cat и закрывает его, если он не равен null.
0
PowerCat
-14 / 2 / 1
Регистрация: 19.09.2013
Сообщений: 445
21.12.2016, 19:57 5
А как ADOB прицепить? Какой неймспейс использовать?
0
OwenGlendower
Супер-модератор
Эксперт .NET
10233 / 8834 / 3779
Регистрация: 17.03.2014
Сообщений: 17,766
Записей в блоге: 1
21.12.2016, 22:35 6
PowerCat, нужно добавить COM reference на библиотеку ADO
0
PowerCat
-14 / 2 / 1
Регистрация: 19.09.2013
Сообщений: 445
22.12.2016, 02:51 7
а... Точно. ..благодарю
0
PowerCat
-14 / 2 / 1
Регистрация: 19.09.2013
Сообщений: 445
23.12.2016, 10:49 8
Интересно...т.е.
1. коннекшн появляется автоматом при создании базы?
2. Потом меняем его тип на ADDOB.Connection?

Добавлено через 4 минуты
Хм...при запуске ADOB._Recordset_Depricated...
0
Agapov_stas
3344 / 1746 / 83
Регистрация: 05.08.2010
Сообщений: 4,454
Завершенные тесты: 1
23.12.2016, 10:55 9
ADOX, ADOB... кхм..
Откройте уже для себя...
C#
1
2
3
using (OleDbConnection connection = new OleDbConnection(connectionString)){
 
}
0
PowerCat
-14 / 2 / 1
Регистрация: 19.09.2013
Сообщений: 445
23.12.2016, 10:57 10
кстати да...это ж тоже освобождает объект )
0
Agapov_stas
3344 / 1746 / 83
Регистрация: 05.08.2010
Сообщений: 4,454
Завершенные тесты: 1
23.12.2016, 11:03 11
Цитата Сообщение от PowerCat Посмотреть сообщение
кстати да...это ж тоже освобождает объект )
Дело не просто в "освобождает объект", а в том, какой подход Вы выбрали для работы с БД. Если уж работаете в VS и C#, то и инструменты необходимо менять.


Почитайте, если будет время.
0
23.12.2016, 11:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2016, 11:03

Как корректно закрыть соединение TCP на стороне клиента
Код следующий: TcpClient client = new TcpClient(server, port); ...

Получение полного пути к файлу и запись его в string
Допустим есть файл filename.accdb, он находится на локальном компьютере всегда...

Закрыть форму через некоторое время после её создания
В основном коде программы создаю новую форму Form1 (класс унаследованный от...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru