С Новым годом! Форум программистов, компьютерный форум, киберфорум
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. Показов 1620. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru