Есть ли оболочка .NET / C# для SQLite?

Я хотел бы использовать SQLite из C# .Net, но не могу найти подходящую библиотеку. Есть один? Официальный? Есть ли другие способы использования SQLite, кроме как с оболочкой?

Это дубликат этого вопроса: stackoverflow.com/questions/26020/… и имеет другой ответ.

Stewart Johnson 24.09.2008 18:48

На самом деле, я считаю, что оба принятых ответа ссылаются на один и тот же проект.

Colin 03.07.2009 20:54
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
270
2
117 075
12
Перейти к ответу Данный вопрос помечен как решенный

Ответы 12

Ответ принят как подходящий

От https://system.data.sqlite.org:

System.Data.SQLite is an ADO.NET adapter for SQLite.

System.Data.SQLite was started by Robert Simpson. Robert still has commit privileges on this repository but is no longer an active contributor. Development and maintenance work is now mostly performed by the SQLite Development Team. The SQLite team is committed to supporting System.Data.SQLite long-term.

"System.Data.SQLite - это исходный механизм базы данных SQLite и полный провайдер ADO.NET 2.0, объединенные в единую сборку смешанного режима. Это полная замена исходному sqlite3.dll (вы даже можете переименовать его в sqlite3.dll). В отличие от обычных смешанных сборок, он не имеет зависимости компоновщика от среды выполнения .NET, поэтому его можно распространять независимо от .NET ».

Он даже поддерживает Mono.

Это старый вопрос, но мне пришлось добавить свои 0,02 доллара. System.Data.SQLite пород. Это супер изысканный, стабильный продукт коммерческого качества. Лучше всего то, что это 100% управляемый код, который был выпущен как исходный код, являющийся общественным достоянием.

Nathan Ridley 15.05.2009 12:05

Просто для последовательности, потому что люди говорят об обоих как о разных вещах. На sqlite.phxsoftware.com вы будете направлены на sourceforge.net/projects/sqlite-dotnet2 для загрузки.

yeyeyerman 10.08.2009 18:10

Эта оболочка больше не разрабатывается ее первоначальным автором, и, похоже, разработку взял на себя сам SQLite. Новый сайт находится по адресу system.data.sqlite.org, хотя на данный момент он кажется менее удобным для пользователя и более незавершенным по сравнению с оригиналом.

Michael Low 11.03.2011 06:27

@NathanRidley - Вы уверены, что он на 100% управляем, потому что в этом ответе говорится: «System.Data.SQLite - это исходный движок базы данных SQLite и полный поставщик ADO.NET 2.0, объединенные в единую сборку смешанного режима».

logicnp 26.08.2013 15:19

К вашему сведению, я попытался использовать стандартный пакет Nuget Microsoft.Data.Sqlite .NET от Microsoft, но он не прошел несколько интеграционных тестов в библиотеке AsyncPoco Github. После перехода на System.Data.SQLite все заработало отлично.

Lee Grissom 25.07.2017 20:00

Он не работает с VS 201. показывает следующую ошибку: Необработанное исключение: System.BadImageFormatException: не удалось загрузить файл или сборку System.Data.SQLite, Version = 1.0.79.0, Culture = нейтральный, PublicKeyToken = db937bc2d44ff139. Была сделана попытка загрузить программу с неверным форматом. в ConsoleApp1_del2.Program.Main (String [] args)

dE Source 28.12.2017 10:24

@dESource вы уверены, что скачали подходящую архитектуру для своего двоичного файла?

ine 29.12.2017 21:06

@ine .. да, двоичный файл правильный, я сомневаюсь, что мой VS не обновлен, позвольте мне вернуться, когда это будет сделано

dE Source 30.12.2017 23:20

@ine версии 1.0.103 отлично работает с обновлением visual studio 2015 3, не знаю, почему это вызывает проблему в 2017 году

dE Source 01.01.2018 18:29

Вот те, которые я могу найти:

Источники:

Я бы определенно выбрал System.Data.SQLite (как упоминалось ранее: http://sqlite.phxsoftware.com/)

Он согласован с ADO.NET (System.Data. *) И скомпилирован в единую DLL. Нет sqlite3.dll - потому что код SQLite на языке C встроен в System.Data.SQLite.dll. Немного управляемой магии C++.

ссылка сейчас 404

SqlACID 29.01.2020 18:53

Также теперь есть такая опция: http://code.google.com/p/csharp-sqlite/ - полный перенос SQLite на C#.

Версия 1.2 Monotouch включает поддержку System.Data. Вы можете найти более подробную информацию здесь: http://monotouch.net/Documentation/System.Data

Но в основном он позволяет использовать обычные шаблоны ADO .NET с sqlite.

http://www.devart.com/dotconnect/sqlite/

dotConnect для SQLite - это расширенный поставщик данных для SQLite, основанный на технологии ADO.NET и представляющий собой законченное решение для разработки приложений баз данных на основе SQLite. Как часть среды разработки приложений баз данных Devart, dotConnect для SQLite предлагает как высокопроизводительное собственное подключение к базе данных SQLite, так и ряд инновационных инструментов и технологий разработки.

dotConnect для SQLite представляет новые подходы к проектированию архитектуры приложений, повышает производительность и использует реализацию приложений баз данных.

Использую стандартную версию, работает отлично :)

Ребята из sqlite.org взяли на себя разработку поставщика ADO.NET:

От их домашняя страница:

This is a fork of the popular ADO.NET 4.0 adaptor for SQLite known as System.Data.SQLite. The originator of System.Data.SQLite, Robert Simpson, is aware of this fork, has expressed his approval, and has commit privileges on the new Fossil repository. The SQLite development team intends to maintain System.Data.SQLite moving forward.

Historical versions, as well as the original support forums, may still be found at http://sqlite.phxsoftware.com, though there have been no updates to this version since April of 2010.

Полный список функций можно найти на на их вики. Основные моменты включают

  • Поддержка ADO.NET 2.0
  • Полная поддержка Entity Framework
  • Полная поддержка Mono
  • Поддержка Visual Studio 2005/2008 во время разработки
  • Compact Framework, поддержка C / C++

Выпущенные библиотеки DLL можно скачать прямо с сайт.

уже доступны готовые DLL

zomf 23.11.2011 09:22

Базовая оболочка функций, предоставляемых библиотекой sqlite. Последняя версия поддерживает функции, предоставляемые библиотекой sqlite 3.7.10

SQLiteWrapper проект

Mono идет с оберткой. https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 дает код для обертывания фактической dll SQLite (http://www.sqlite.org/sqlite-shell-win32-x86-3071300.zip находится на странице загрузки http://www.sqlite.org/download.html/) дружественным к .NET способом. Работает в Linux или Windows.

Это кажется самым тонким из всех миров, сводя к минимуму вашу зависимость от сторонних библиотек. Если бы мне пришлось делать этот проект с нуля, я бы сделал это так.

sqlite-net - это минимальная библиотека с открытым исходным кодом, позволяющая приложениям .NET и Mono хранить данные в SQLite 3 базы данных. Больше информации на страница вики.

Он написан на C# и предназначен для простой компиляции с вашими проектами. Сначала он был разработан для работы с MonoTouch на iPhone, но вырос для работы на всех платформах (Mono для Android, .NET, Silverlight, WP7, WinRT, Azure и т. д.).

Он доступен как Пакет Nuget, где он является вторым по популярности пакетом SQLite с более чем 60 000 загрузок по состоянию на 2014 год.

sqlite-net был разработан как быстрый и удобный слой базы данных. Его конструкция вытекает из этих целей:

  • Очень легко интегрировать с существующими проектами и с проектами MonoTouch.
  • Тонкая оболочка над SQLite, которая должна быть быстрой и эффективной. (Библиотека не должна быть узким местом производительности ваших запросов.)
  • Очень простые методы для безопасного выполнения операций и запросов CRUD (с использованием параметров) и для получения результатов этих запросов строго типизированным способом.
  • Работает с вашей моделью данных, не заставляя вас менять классы. (Содержит небольшой слой ORM, управляемый отражением.)
  • 0 кроме скомпилированной формы библиотеки sqlite2.

Нецелевые включают:

  • Нет реализация ADO.NET. Это не полный драйвер SQLite. Если вам это нужно, используйте System.Data.SQLite.

Я заметил, что в большинстве комментариев до 2014 года говорилось о System.Data.SQLite, который я пытался установить в своем приложении Windows Store (не сработало). Sqlite-net работает.

JeeShen Lee 27.01.2016 05:54

Microsoft.Data.Sqlite

Microsoft теперь предоставляет Microsoft.Data.Sqlite в качестве основного решения SQLite для .NET, которое предоставляется как часть ASP.NET Core. Лицензия - Лицензия Apache, версия 2.0.

* Отказ от ответственности: я сам еще не пробовал использовать это, но в Microsoft Docs здесь есть некоторая документация по его использованию с .NET Core и UWP.

Для тех, кто вроде меня не нуждается или не хочет ADO.NET, тех, кому нужно запускать код ближе к SQLite, но все еще совместим с netstandard (.net framework, .net core и т. д.), Я создал 100% бесплатный проект с открытым исходным кодом под названием SQLNado («Not ADO»), доступный на github здесь:

https://github.com/smourier/SQLNado

Он доступен как nuget здесь https://www.nuget.org/packages/SqlNado, но также доступен как один файл .cs, поэтому его довольно удобно использовать в любом типе проекта C#.

Он поддерживает все функции SQLite при использовании команд SQL, а также поддерживает большинство функций SQLite через .NET:

  • Автоматическое сопоставление классов и таблиц (сохранение, удаление, загрузка, LoadAll, LoadByPrimaryKey, LoadByForeignKey и т. д.)
  • Автоматическая синхронизация схемы (таблиц, столбцов) между классами и существующей таблицей
  • Разработан для поточно-ориентированных операций
  • Где и OrderBy LINQ / IQueryable выражения .NET поддерживаются (работа в этой области все еще продолжается), также с поддержкой сопоставления
  • Схема базы данных SQLite (таблицы, столбцы и т. д.), Доступная для .NET
  • Пользовательские функции SQLite могут быть написаны на .NET
  • Добавочный ввод-вывод больших двоичных объектов SQLite представлен как поток .NET, чтобы избежать большого потребления памяти.
  • Поддержка сопоставления SQLite, включая возможность добавления настраиваемых сопоставлений с использованием кода .NET.
  • Поддержка механизма полнотекстового поиска SQLite (FTS3), включая возможность добавления пользовательских токенизаторов FTS3 с использованием кода .NET (например, локализованных стоп-слов). Я не верю, что другие .NET-оболочки делают это.
  • Автоматическая поддержка Windows 'winsqlite3.dll' (только в последних версиях Windows) для файла Избегайте доставки любых двоичных зависимостей. Это также работает в веб-приложениях Azure !.

Другие вопросы по теме