Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
95 / 62 / 22
Регистрация: 11.03.2013
Сообщений: 608
Записей в блоге: 7

Sqlite The database file is locked - заблокирована база при правильном запросе

01.04.2019, 18:44. Показов 1634. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток господа.
У меня не вероятная проблема. Не так давно столкнулся с таким, что блочится база данных, но в коде была каша и я так и не смог понять где. Переделал всё с нуля, сделал правильный коннект, но теперь после определенного действия база не закрывается.
Ближе к коду
У меня есть db_connection.cs
где я делаю подключение следующим способом.
C#
1
2
3
4
5
6
 public SqliteConnection GetConnection()
    {
        var connection = new SqliteConnection("URI=file:" + path);
        connection.Open();
        return connection;  
    }
Если я считываю или вношу данные, всё хорошо обрабатывает, но вот после поиска, у меня трабла, коннект не закрывается, и даже если прописать всё равно соединение открыто.
вот как я выполняю поиск
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
public void SearchDBGosNumber()
    {
        db_connection DBCON = new db_connection();
        DBCON.GetConnection();
        try
        {
 
            string numberAuto = DataNewClient.SearchGosNumber.text.ToString();
            cmd_db = new SqliteCommand("Select * FROM clients WHERE number LIKE '%" + numberAuto + "%'", DBCON.GetConnection());
            DebugLogText.data_text_DB.text = "Ничего не найдено!"; //тут просто вывожу информацию
            DBG._btnTarget.SetActive(false);                 //      активируем           
            DBG._btnTargetIfNotSearch.SetActive(true); //    разные GameObjects
            rdr_db = cmd_db.ExecuteReader();
            while (rdr_db.Read())
            {
 
                DebugLogText.data_text_DB.text =
                "Марка машины - " + rdr_db[0].ToString() + Environment.NewLine +
                "Модель - " + rdr_db[1].ToString() + Environment.NewLine +
                "Год выпуска - " + rdr_db[2].ToString() + Environment.NewLine +
                "Гос номер - " + rdr_db[3].ToString() + Environment.NewLine +
                "ФИО клиента - " + rdr_db[4].ToString() + Environment.NewLine +
                "Дата рождения - " + rdr_db[5].ToString() + "." + rdr_db[6].ToString() + "." + rdr_db[7].ToString() + Environment.NewLine +
                "Телефон - " + rdr_db[8].ToString() + Environment.NewLine +
                "Группа авто - " + rdr_db[9].ToString();
                DBG._btnTarget.SetActive(true);
                DBG._btnTargetIfNotSearch.SetActive(false);
 
 
                DGS.GroupMenu_Data = rdr_db[9].ToString(); // Сохраняем значение в переменной для дальнейшего взаимодействия при подборке цен
                
                Debug.Log(cmd_db.Connection.State.ToString());
            }
 
        }
Ищет всё как надо, но если я даже в конец кода поставлю db.Close(); коннект по-прежнему открыт. И записать новые данные уже невозможно The database file is locked.
Почему так только с поиском? где я что проглядел?
Может ли быть такое, что когда я сохраняю данные из базы в переменной, она остается открытой?
C#
1
DGS.GroupMenu_Data = rdr_db[9].ToString();
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.04.2019, 18:44
Ответы с готовыми решениями:

Sqlite The database file is locked database is locked
Добрый вечер. Появилась ошибка о том, что база заблокирована. Делаю я так db_login.cs private db_controller _dbctrl = new...

Не проходят запросы к sqlite, ошибка: The database file is locked (database is locked)
Столкнулся с проблемой, и не понимаю из-за чего... Дело в том, что к одной таблице не проходят запрос на обновление и удаление, хотя к...

Без причины ошибка The database file is locked (database is locked)
В общем, создал бота для телеграма. Использую один, естественно, статический объект Connection для доступа к БД. При необходимости...

2
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
01.04.2019, 21:06
anomal6,
Во-первых, я вам в прошлом посте писал про using, про SqlParameters. Где это все? По прежнему г**о.

Что касается проблемы. Вы разве не видите, то что я увидел за 3 секунды?
Первое открытие базы:


Второе открытие базы:


Потом первое вы закрываете (хотя в коде этого нет), а второе - нет.
0
95 / 62 / 22
Регистрация: 11.03.2013
Сообщений: 608
Записей в блоге: 7
02.04.2019, 14:49  [ТС]
Цитата Сообщение от Storm23 Посмотреть сообщение
Где это все? По прежнему г**о.
Я в записи применяю SqlParametr
C#
1
2
3
 DBCON.ExecuteNonQuery(sql, new SqliteParameter("@brand", brand), new SqliteParameter("@model", model), new SqliteParameter("@years", years), new SqliteParameter("@number", number),
                            new SqliteParameter("@nusers", nusers), new SqliteParameter("@dbirthday", dbirthday), new SqliteParameter("@mbirthday", mbirthday), new SqliteParameter("@ybirthday", ybirthday),
                            new SqliteParameter("@mobile", mobile), new SqliteParameter("@groupmodel", groupmodel));
При поиске тоже нужно?

Цитата Сообщение от Storm23 Посмотреть сообщение
Что касается проблемы. Вы разве не видите, то что я увидел за 3 секунды?
Нет, я видимо ослеп, раз такую дичь пишу!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.04.2019, 14:49
Помогаю со студенческими работами здесь

SQLte ошибка при выполнении команд: Database file is locked
Когда я говорю SQLite выполнить мою команду: Public Function testik() Dim myConnection As New...

SQLite database is locked
Никак не могу понять причину этой ошибки, вроде всё работало, а тут раз и она =)

Delphi SQLite database is locked
Добрый день. Сразу скажу: форумы читал, гуглил. Ничего не помогло. Ситуация такая: Не могу понять, как при использовании...

database is locked Unable to fetch row SQLite
Всем привет! Следующая проблема Программа, аналог UpdateScannera'a в FireFox Цель - сканировать сайты на предмет наличия новых...

Странное поведение sqlite - database is locked в 50% случаев
Выполняется обычный запрос: "UPDATE results SET isReaded = @isread WHERE id = @id;". Когда я просто хочу это сделать, вылетает database is...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru