2008-09-18 13 views
260

Me gustaría utilizar SQLite desde C# .Net, pero parece que no puedo encontrar una biblioteca adecuada. ¿Hay alguno? ¿Uno oficial? ¿Hay otras maneras de usar SQLite que con un contenedor?¿Hay un contenedor .NET/C# para SQLite?

+4

Este es un duplicado de esta pregunta: http://stackoverflow.com/questions/26020/what-is-the-best-way-to-connect-and-use-a-sqlite-database-from-c y tiene una respuesta diferente. –

+2

En realidad, creo que ambas respuestas aceptadas se vinculan con el mismo proyecto. – Colin

Respuesta

322

De 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 es el motor de la base de datos SQLite original y una completa proveedor ADO.NET 2.0, todo en un solo conjunto de modo mixto es una gota en completa reemplazo del sqlite3.dll original (incluso puede cambiarle el nombre a sqlite3.dll). A diferencia de los ensamblados mixtos normales, no tiene una dependencia del enlazador en el tiempo de ejecución .NET por lo que se puede distribuir independientemente de .NET ".

Incluso es compatible con Mono.

+32

Esta es una vieja pregunta, pero tuve que agregar mi $ 0.02. System.Data.SQLite rocks. Es súper refinado, estable y de calidad comercial. Lo mejor de todo es que es un código administrado al 100% y se ha lanzado como un código fuente de dominio público. –

+4

Solo por coherencia, porque las personas hablan de ambas cosas como diferentes. En sqlite.phxsoftware.com apunta a sourceforge.net/projects/sqlite-dotnet2 para descargar. – yeyeyerman

+16

Este envoltorio ya no está siendo desarrollado por su autor original, y el desarrollo parece haber sido asumido por el propio SQLite. El nuevo sitio está en system.data.sqlite.org, aunque por el momento parece menos fácil de usar y más trabajo en progreso en comparación con el original. – mikel

8

sin duda lo van con System.Data.SQLite (como se ha mencionado anteriormente: http://sqlite.phxsoftware.com/) (. System.Data *)

Es coherente con ADO.NET, y está compilado en una sola DLL. No sqlite3.dll: porque el código C de SQLite está incrustado en System.Data.SQLite.dll. Un poco de magia C++ administrada.

0

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

dotConnect para SQLite es un proveedor de datos mejorado para SQLite que se basa en la tecnología ADO.NET para presentar una solución completa para el desarrollo de aplicaciones de bases de datos basado en SQLite. Como parte del marco de desarrollo de la aplicación de la base de datos Devart, dotConnect para SQLite ofrece conectividad nativa de alto rendimiento a la base de datos SQLite y una serie de herramientas y tecnologías de desarrollo innovadoras.

dotConnect for SQLite presenta nuevos enfoques para diseñar arquitectura de aplicaciones, aumenta la productividad y aprovecha la implementación de aplicaciones de bases de datos.

Yo uso la versión estándar, funciona perfecto :)

15

La gente de sqlite.org se han apoderado de la evolución de la ADO.proveedor de NET:

De their homepage:

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.

La lista completa de características se puede encontrar en on their wiki. Destacan

  • ADO.NET 2.0 apoyo
  • apoyo apoyo
  • Visual Studio 2005/2008 de tiempo de diseño de soporte
  • Compact Framework, C/C++ apoyo
  • completa de Entity Framework
  • completa Mono

Las DLL lanzadas se pueden descargar directamente desde the site.

+0

ready-made Las DLL están ahora disponibles – zomf

0

Un barebones envoltura de las funciones proporcionadas por la biblioteca sqlite. La última versión es compatible con funciones siempre librería SQLite 3.7.10

SQLiteWrapper project

2

Mono viene con un envoltorio. https://github.com/mono/mono/tree/master/mcs/class/Mono.Data.Sqlite/Mono.Data.Sqlite_2.0 proporciona el código para envolver el archivo DLL de SQLite real (http://www.sqlite.org/sqlite-shell-win32-x86-3071300.zip que se encuentra en la página de descarga http://www.sqlite.org/download.html/) de una manera amigable .net. Funciona en Linux o Windows.

Parece el más delgado de todos los mundos, lo que minimiza su dependencia de las bibliotecas de terceros. Si tuviera que hacer este proyecto desde cero, esta es la forma en que lo haría.

6

sqlite-net es una biblioteca mínima de código abierto para permitir que las aplicaciones .NET y Mono almacenen datos en SQLite 3 databases. Más información en el wiki page.

Está escrito en C# y está destinado a ser simplemente compilado con sus proyectos. Primero fue diseñado para trabajar con MonoTouch en el iPhone, pero ha crecido para funcionar en todas las plataformas (Mono para Android, .NET, Silverlight, WP7, WinRT, Azure, etc.).

Está disponible como Nuget package, donde es el segundo paquete SQLite más popular con más de 60.000 descargas a partir de 2014.

sqlite-net fue diseñado como una capa de base de datos rápida y conveniente. Su diseño sigue estos objetivos:

  • Muy fácil de integrar con proyectos existentes y con proyectos MonoTouch.
  • Thin wrapper sobre SQLite y debe ser rápido y eficiente. (La biblioteca no debe ser el cuello de botella de rendimiento de sus consultas.)
  • Métodos muy simples para ejecutar operaciones CRUD y consultas de forma segura (utilizando parámetros) y para recuperar los resultados de esas consultas de manera fuertemente tipada.
  • Funciona con su modelo de datos sin obligarlo a cambiar sus clases. (Contiene una pequeña capa ORM orientada por reflexión.)
  • 0 dependencias aparte de una forma compilada de la biblioteca sqlite2.

no-objetivos incluyen:

  • No una implementación ADO.NET. Este no es un controlador SQLite completo. Si lo necesita, use System.Data.SQLite.
+0

Noté que la mayoría del comentario anterior a 2014 decía System.Data.SQLite que traté de instalar en mi aplicación Windows Store (no funcionó). Sqlite-net funciona. –

1

Microsoft.Data.Sqlite

Microsoft proporciona ahora Microsoft.Data.Sqlite como una solución SQLite de primera parte de .NET, que se proporciona como parte de ASP.NET Core. La licencia es Apache License, Version 2.0.

* responsabilidad: En realidad no he intentado usar este mismo todavía, pero hay algo de documentación proporcionada por Microsoft Docs here para usarlo con .NET Core y UWP .

0

Para aquellos como yo que no necesitan o no quieren ADO.NET, aquellos que necesitan ejecutar código más cerca de SQLite, pero aún son compatibles con netstandard (.net framework, .net core, etc.) , he construido un proyecto de código abierto 100% llamada SQLNado (por "no ADO") disponible en github aquí:

https://github.com/smourier/SQLNado

Nota: no está disponible como un Nuget a partir de hoy, pero como un único archivo .cs, por lo que es bastante práctico usarlo en cualquier tipo de proyecto C#.

Cuestiones relacionadas