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





От 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% управляемый код, который был выпущен как исходный код, являющийся общественным достоянием.
Просто для последовательности, потому что люди говорят об обоих как о разных вещах. На sqlite.phxsoftware.com вы будете направлены на sourceforge.net/projects/sqlite-dotnet2 для загрузки.
Эта оболочка больше не разрабатывается ее первоначальным автором, и, похоже, разработку взял на себя сам SQLite. Новый сайт находится по адресу system.data.sqlite.org, хотя на данный момент он кажется менее удобным для пользователя и более незавершенным по сравнению с оригиналом.
@NathanRidley - Вы уверены, что он на 100% управляем, потому что в этом ответе говорится: «System.Data.SQLite - это исходный движок базы данных SQLite и полный поставщик ADO.NET 2.0, объединенные в единую сборку смешанного режима».
К вашему сведению, я попытался использовать стандартный пакет Nuget Microsoft.Data.Sqlite .NET от Microsoft, но он не прошел несколько интеграционных тестов в библиотеке AsyncPoco Github. После перехода на System.Data.SQLite все заработало отлично.
Он не работает с VS 201. показывает следующую ошибку: Необработанное исключение: System.BadImageFormatException: не удалось загрузить файл или сборку System.Data.SQLite, Version = 1.0.79.0, Culture = нейтральный, PublicKeyToken = db937bc2d44ff139. Была сделана попытка загрузить программу с неверным форматом. в ConsoleApp1_del2.Program.Main (String [] args)
@dESource вы уверены, что скачали подходящую архитектуру для своего двоичного файла?
@ine .. да, двоичный файл правильный, я сомневаюсь, что мой VS не обновлен, позвольте мне вернуться, когда это будет сделано
@ine версии 1.0.103 отлично работает с обновлением visual studio 2015 3, не знаю, почему это вызывает проблему в 2017 году
Вот те, которые я могу найти:
Источники:
Я бы определенно выбрал System.Data.SQLite (как упоминалось ранее: http://sqlite.phxsoftware.com/)
Он согласован с ADO.NET (System.Data. *) И скомпилирован в единую DLL. Нет sqlite3.dll - потому что код SQLite на языке C встроен в System.Data.SQLite.dll. Немного управляемой магии C++.
ссылка сейчас 404
Также теперь есть такая опция: 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.
Полный список функций можно найти на на их вики. Основные моменты включают
Выпущенные библиотеки DLL можно скачать прямо с сайт.
уже доступны готовые DLL
Базовая оболочка функций, предоставляемых библиотекой sqlite. Последняя версия поддерживает функции, предоставляемые библиотекой sqlite 3.7.10
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 был разработан как быстрый и удобный слой базы данных. Его конструкция вытекает из этих целей:
Нецелевые включают:
Я заметил, что в большинстве комментариев до 2014 года говорилось о System.Data.SQLite, который я пытался установить в своем приложении Windows Store (не сработало). Sqlite-net работает.
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:
Это дубликат этого вопроса: stackoverflow.com/questions/26020/… и имеет другой ответ.