Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
netBool
238 / 241 / 148
Регистрация: 16.11.2010
Сообщений: 917
Записей в блоге: 8
Завершенные тесты: 5
#1

SQLiteConnection.Close() что нужно закрывать и диспосить после запроса?

20.06.2017, 13:58. Просмотров 191. Ответов 0
Метки нет (Все метки)

Добрый день всем!
Сделал функцию для запроса к SQLite на запись данных:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
                SQLiteConnection.CreateFile(Name);
 
            using (SQLiteConnection connection =
                new SQLiteConnection(string.Format("Data Source={0};", Name)))
            {
                SQLiteCommand commandCreProd =
                    new SQLiteCommand(CreateProdStringCom, connection);
                SQLiteCommand commandCreFold = new SQLiteCommand(CreateFoldStringCom, connection);
 
 
                SQLiteCommand commandInFold = new SQLiteCommand(comFoldLines , connection);
 
                SQLiteCommand commandInProd = new SQLiteCommand( comProdLines , connection);
 
                connection.Open();
 
                commandCreProd.ExecuteNonQuery();
                commandCreFold.ExecuteNonQuery();   //создана таблица:
 
                try
                {
                    commandInProd.ExecuteNonQuery(); //вставлена запись
                }
                catch (Exception ex)
                {
                    logVar += DateTime.Now.TimeOfDay.ToString() + Environment.NewLine + ex.Message
                        + Environment.NewLine + commandInProd.CommandText + Environment.NewLine
                        ;
                    System.Windows.Forms.MessageBox.Show("Ошибка products: " + ex.Message);
                }
 
                commandInFold.ExecuteNonQuery();                
 
                connection.Close();
 
                System.Windows.Forms.MessageBox.Show(connection.State.ToString());//возвращает, что закрыто
                connection.Dispose();
 
            }
Когда я выполняю запись в первый раз, все проходит нормально. Но при втором запуске ругается, что Процесс не может получить доступ к файлу, т.к. файл занят другим процессом.
Вроде все позакрывал. При том, что само использование конструкции using должно за собой все убрать.
Может я что-то не доглядел? Полдня ковыряюсь, не могу понять

Добавлено через 56 минут
Временно вышел из положения через
C#
1
2
3
4
                if (!System.IO.File.Exists(Name))
                {                    
                    SQLiteConnection.CreateFile(Name);
                }
Видимо SQLiteConnection.CreateFile делает жесткую привязку к процессу, которую нельзя закрыть программными средствами
Может быть есть какая-нибудь альтернатива SQLiteConnection.CreateFile?

Добавлено через 3 минуты
Так все работает, ошибок при повторном считывании не вызывает, хотя все равно остается какая-то жесткая привязка: во время работы программы нельзя просто так удалить файл.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2017, 13:58
Ответы с готовыми решениями:

Нужно ли закрывать БД
С помощью подхода CodeFirst создал БД, из контроллера получил из БД нужные...

Нужно ли закрывать соединение MySQL
Доброго времени суток. Немного опишу программу. Есть приложение, которое...

StreamReader: когда закрывать поток и нужно ли это делать
Нужно ли закрывать постоянно? sr = new StreamReader("123.txt"); string a =...

Узнать состояние SQLiteConnection
работаю с базой данных SQLite. Из за того что она не дает держать открытыми...

Нужно узнать количество строк после запроса SELECT
$sql = "SELECT marka, model, type, view, year, price, currency, id, photo FROM...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2017, 13:58

Условие запроса выдает не то что нужно
У меня есть запрос: PARAMETERS DateTime, DateTime; SELECT Номера.,...

Нужно ли закрывать файл
Есть ли практический смысл в закрытии файлов после работы с ними?

Закрывать или не закрывать тег <?php в отдельных файлах кода
Структура php файла такова: &lt;?php //Сам код 1 //Сам код 2 //Сам код 3 ...


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

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

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