С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/55: Рейтинг темы: голосов - 55, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 28.11.2014
Сообщений: 25

Как работать с базами данных SQLite

04.03.2015, 07:24. Показов 11179. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет

Подозреваю, что тема избитая, но , к сожалению, для себя решения не нашел.
Я не проф. программист, но есть задача написать десктоп-приложение на VB .net (Visual Studio 2010 Express) с использованием БД SQLite
Не могу найти четкий и ясный способ получения доступа к SQLite.
Я писал приложение для MySQL - там все было просто, установил MySQL-connector-net с офф сайта и все.
Есть ли подобный способ в моем случае? И вообще в VS Express это реально?
установил ADO.NET SQLite Data Provider Version 1.0.95.0, в хелпе есть фраза "Due to Visual Studio licensing restrictions, the Express Editions can no longer be supported." Это конец?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.03.2015, 07:24
Ответы с готовыми решениями:

Как работать с базами данных из своего приложения
Всем форумистам, добрый вечер! Я еще совсем зеленый в программировании на VB.NET, есть один вопрос: у меня есть готовая БД (имеет любое...

Как работать с базами данных
в делфи я имел такую вещь: DBD32.EXE это БД есть что та в шарпе наподобе DBD32.EXE ???

Как работать с базами данных?
Подскажите пожалуйста как на делфи написать открытие файлов б.д. таких как к примеру MDF,SQL или access.

10
41 / 2 / 1
Регистрация: 20.09.2012
Сообщений: 7
04.03.2015, 08:23
Вот здесь есть релизы и пример использования:
Релизы
Пример использования
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
04.03.2015, 09:34
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Пользоваться SQLite очень просто. Нужно лишь скачать библиотеки. На офсайте есть несколько версий под каждую версию .Net Framework, рекомендую пользоваться версией bundle, потому что в сборку уже зашита нативная виндовая sqlite.dll.
Сама управляемая сборка SQLite состоит из:

System.Data.SQLite.dll — управляемая сборка, необходима
System.Data.SQLite.Linq.dll — используется для запросов Linq, нужна только для них
Нативных библиотек SQLite.Interop.dll, каждая для своей версии операционной системы

Нативные библиотеки уже зашиты в управляемой версии bundle сборки SQLite. Таким образом для использования SQLite необходимо лишь, чтобы в директории с исполняемой программой находился файл System.Data.SQLite.dll.

Если нужно, чтобы подключение к базе и генерацию запросов делала сама студия, то нужно установить эти библиотеки в глобальный кеш сборок. Автоматическую установку всех нужных сборок в глобальный кеш будет делать версия setup, однако это не рекомендуется офсайтом.

Что же делать? Всё просто: скачать архив (версию с setup или без неё), распаковать и добавить ссылки в студии на эту сборку.
Насчёт ограничений експресс‐версий студии: если компилировать программу вручную из командной строки, то ограничений, накладываемых експресс‐версией студии, не будет.

А дальше?
А дальше как и с любой базой данных. Вот самый простой способ подключения к базе, выполнения запроса и закрытия базы:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
' Подключение к базе данных
Dim objConnection As SQLiteConnection = New SQLiteConnection("строка подключения к базе данных")
objConnection.Open()
' Команда
Dim objCommand As SQLiteCommand = New SQLiteCommand("запрос к базе данных, например DELETE ALL FROM Customers", objConnection)
' Выполнить
objCommand.ExecuteNonQuery()
' Очистка
objCommand.Dispose()
' Закрыть подключение к базе
objConnection.Close()
И ещё не нужно забывать, что SQLite — это не клиент‐серверная база данных. Это значит, что в многопоточных и асинхронных приложениях (например, ASP.Net вся многопототочная) требуется написание собственного несложного менеждера синхронизации, чтобы процессы чтения базы не мешали процессам записи. То есть в один момент времени потоков чтения базы данных может быть несколько, но вот поток записи должен быть только один, за этим необходимо следить самостоятельно, что можно реализовать с помощью таких классов как ReaderWriterLock и ReaderWriterLockSlim.
2
 Аватар для GSXL
172 / 180 / 27
Регистрация: 26.11.2011
Сообщений: 386
Записей в блоге: 1
04.03.2015, 12:13
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Загляни в FAQ там есть пример транзакции для SQLite. Там же и подключение и создание таблицы...
и не слушай не кого, читай мануалы, вещ очень стоющая (я про SQLite) она во многом лучше, единственный минус это доступ записи в базу, но для этого можно установить таймаут соединения что бы не было ошибки, а по скорости тестировал сам, работает значительно быстрее чем MySQL.
1
0 / 0 / 0
Регистрация: 28.11.2014
Сообщений: 25
05.03.2015, 09:24  [ТС]
Всем спасибо, вроде бы разобрался

Добавлено через 2 часа 33 минуты
Разобраться-то разобрался, в консольном приложении заработало.
А вот визуальное - говорит не удалось загрузить System.Data.SQlite.dll и бла бла бла
Что делать? Компилить в консоли? Пробовал через MSBUILD - результат тот же ... Подскажите пожалуйста.
0
 Аватар для GSXL
172 / 180 / 27
Регистрация: 26.11.2011
Сообщений: 386
Записей в блоге: 1
05.03.2015, 09:32
Смотри внимательно на разрядность библиотеки и платформы разработки. Если пишешь на net 3.5 то и библиотека должна быть такая же.
Если хочешь что бы работало на 86/64 битых одинаково делай ссылку на библиотеку 86 бит а в студии выставить AnyCPU и все будет работать
0
0 / 0 / 0
Регистрация: 28.11.2014
Сообщений: 25
05.03.2015, 09:49  [ТС]
Повторюсь - консольное приложение прекрасно работает, а вот визуальное - увы ( остальное - идентично. Приложение 32-битное (машина 64 бит), .NET v4, VS 2010 Express - не в этом ли дело?
0
 Аватар для GSXL
172 / 180 / 27
Регистрация: 26.11.2011
Сообщений: 386
Записей в блоге: 1
05.03.2015, 10:16
Оу, я немного ошибся, по поводу разрядности, присоединить библиотеку (х32) под вашу платформу а в разрядности компилятора выставить 86 бит. У меня работает.
Миниатюры
Как работать с базами данных SQLite  
Вложения
Тип файла: zip SQLite транзакция (Win_64).zip (597.4 Кб, 57 просмотров)
1
 Аватар для GSXL
172 / 180 / 27
Регистрация: 26.11.2011
Сообщений: 386
Записей в блоге: 1
05.03.2015, 10:16
правда у меня 2013 версия
0
0 / 0 / 0
Регистрация: 28.11.2014
Сообщений: 25
05.03.2015, 11:35  [ТС]
Все, проблема решена. Действительно нужно было явно указать архитектуру (х86 в моем случае)
Правда загвоздка еще в том, что по дефолту она отсутствует в выборе - надо ее руками добавить через диспетчер конфигураций.
PS. 86 - это не кол-во битов, а название 32-битной архитектуры ...
0
 Аватар для GSXL
172 / 180 / 27
Регистрация: 26.11.2011
Сообщений: 386
Записей в блоге: 1
05.03.2015, 11:41
Цитата Сообщение от tony_montana74 Посмотреть сообщение
PS. 86 - это не кол-во битов, а название 32-битной архитектуры ...
Ну да))) Главное все понимают)
А ты обновись до 2013 версии, будет проще. Ток не ставь community, такое впечатление что она глючит. С express у меня проблем не было
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.03.2015, 11:41
Помогаю со студенческими работами здесь

Как научиться работать с базами данных?
Кто-то может подсказать литературу, сайты или ссылки форума, где подробно для чайников разжёвывается с самых основ такое понятие как базы...

Как правильно работать с базами данных?
Добрый день! Как не потеряться во всем разнообразии классов, технологий ADO, Linq, EF что с чем едять подскажите как правильно...

Как работать с базами данных на SQL в Visual C++?
Помогите мне !!!! ПЛИЗ!!!! Как работать с базами данных на SQL в Visual C++!!! или подскожите хотя бы где можно найти инфу по этому...

Как в МFС работать с несколькими взаимосвязанными базами данных
Есть аксессовская БД, в которой несколько взаимосвязаных таблиц. Как подключить их и как сделать так чтоб связи было видно? Спасибки.

Как использовать LINQ с базами SQLite
Здравствуйте, скажите пожалуйста, как использовать LINQ с базой данных SQLite? А то постоянно открывать/закрывать соединение, и писать все...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru