About SQLite.NET
This class library is an ADO.NET 2.0 wrapper around the popular (and free!) SQLite database engine. For information on SQL syntax, features of SQLite and a good understanding of how it works and what it does, I highly recommend heading over to sqlite.org and reading the documentation there.
The C# provider, the very minor C code modifications to SQLite, documentation and etc were written by Robert Simpson, and the SourceForge project page can be found here.
What's New?
Click here to see the version history of this SQLite.NET provider
Using this library
The following are links to information on various aspects of the library and how to use it in your application(s)
How to install Visual Studio Design-Time Support
How to configure and enumerate SQLite.NET through the DbProviderFactories object
Getting the best performance out of SQLite
SQLite.NET Provider Features
This SQLite provider implements every feature of the underlying SQLite database engine without omission. Here's a brief summary:
- Written from scratch on VS2005/2008 specifically for ADO.NET 2.0, implenting all the base classes and features recently introduced in the framework, including automatic transaction enlistment.
- Supports the Full and Compact .NET Framework, as well as native C/C++ development. 100% binary compatible with the original sqlite3.dll.
- On the Compact Framework, it is faster than Sql Server Mobile. SQLite's installed size is a fraction of Sql Mobile's. It uses less memory at runtime, runs queries faster, and has a smaller database file size as well.
- Encrypted database support. Encrypted databases are fully encrypted and support both binary and cleartext password types.
- Visual Studio 2005/2008 Design-Time Support. You can add a SQLite database to the Servers list, design queries with the Query Designer, drag-and-drop tables onto a Typed DataSet, etc.
- Full SQLite schema editing inside Visual Studio. You can create/edit tables, views, triggers, indexes, check constraints and foreign keys.
- Single file redistributable. The core sqlite3 codebase and the ADO.NET wrapper are combined into one multi-module assembly.
- Binaries included for Itanium, x64, x86 and ARM processors.
- DbProviderFactory support.
- Full support for ATTACH'ed databases. Exposed as Catalogs in the schema. When cloning a connection, all attached databases are automatically re-attached to the new connection.
- DbConnection.GetSchema(...) support includes the MetaDataCollections, DataSourceInformation, Columns, Tables, Views, ViewColumns, Catalogs, Indexes, IndexColumns, ForeignKeys and Triggers.
- Enhanced DbDataReader.GetSchemaTable() functionality returns catalog, namespace and detailed schema information even for complex queries.
- Named and unnamed parameters.
- Full UTF-8 and UTF-16 support, each with optimized pipelines into the native database core.
- Multiple simultaneous DataReaders (one DataReader per Command however).
- Full support for user-defined scalar and aggregate functions, encapsulated into an easy-to-use base class in which only a couple of overrides are necessary to implement new SQL functions.
- Full support for user-defined collating sequences, every bit as simple to implement as user-defined functions and uses the same base class.
- Full source for the entire engine and wrapper. No copyrights. Public Domain. 100% free for commercial and non-commercial use.
Distributing the Binaries
System.Data.SQLite.DLL is a mixed assembly signed with a strong name in case you want to add it to the Global Assembly Cache (GAC). This is the only DLL required to be redistributed with your SQLite.NET application(s). It comes in 4 flavors: Win32, Itanium, X64 (AMD64) and ARM (Compact Framework). The Compact Framework library is signed with a separate strong name, but all the other versions share the same strong name so they can be interchanged where appropriate without any change to your application.