System.Data.SQLite

An open-source, enhanced version of the SQLite database engine for Windows

System.Data.SQLite is an enhanced version of the original SQLite database engine.  It is a complete drop-in replacement for the original sqlite3.dll (you can even rename it to sqlite3.dll).  It has no linker dependency on the .NET runtime so it can be distributed independently of .NET, yet embedded in the binary is a complete ADO.NET 2.0 provider for full managed development.

Here is a brief overview of its features:

Complete ADO.NET 2.0 Implementation
The provider was written from scratch on VS2005/2008 specifically for ADO.NET 2.0, using all the new changes in the ADO.NET framework.  That includes full DbProviderFactory support, automatic distributed transaction enlistment, extensive schema support, and all the classes inherit from the ADO.NET 2.0 base classes.

Supports the Full and Compact .NET Framework as well as native C/C++
The library is 100% binary compatible with the original sqlite3.dll and has no linker dependencies on the .NET runtime for full unmanaged C/C++ development.

Completely portable database files
Unencrypted SQLite databases can be freely shared across all platforms and CPU types, including non-Windows platforms. Encrypted databases can be shared across all Windows platforms and processors.

Incredibly fast, faster than most every other embedded database, including Sql Server Mobile
SQLite's installed size is a fraction of Sql Mobile's. It uses less memory at runtime, and generates smaller databases as well.

Encryption Support
The entire database file can be encrypted.  Binary and cleartext passwords are supported.

Visual Studio 2005/2008 Design-Time Support
You can add a SQLite connection to the Server Explorer, create queries with the query designer, drag-and-drop tables onto a Typed DataSet and more! SQLite's designer works on all editions of Visual Studio 2005/2008, including all Express Editions.

Single file redistributable under 600kb
The native SQLite library and the ADO.NET wrapper are combined into one multi-module assembly.  Precompiled binaries are available for x86, IA64, x64 and ARM processors.

Extensive SQL support
SQLite implements most of the SQL92 standard (see below).  Supports named and unnamed parameters along with full UTF-8 and UTF-16 support each with optimized pipelines into the SQLite core.

User-Defined Functions & Collating Sequences
Full support for user-defined functions and collating sequences means that in many cases if SQLite doesn't have a feature, you can write it yourself in your favorite .NET language.  Writing UDF's and collating sequences has never been easier.

Full Source Included.  100% Free.
The full source to the wrapper and SQLite engine is in the public domain.  There are zero licensing restrictions for private or commercial use.

SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine. Features include:

  • Transactions are atomic, consistent, isolated, and durable (ACID) even after system crashes and power failures.
  • Zero-configuration - no setup or administration needed.
  • Implements most of SQL92. (Features not supported)
  • A complete database is stored in a single disk file.
  • Database files can be freely shared between machines with different byte orders.
  • Supports databases up to 2 terabytes (241 bytes) in size.
  • Sizes of strings and BLOBs limited only by available memory.
  • Small code footprint: less than 30K lines of C code, less than 250KB code space (gcc on i486)
  • Faster than popular client/server database engines for most common operations.
  • Simple, easy to use API.
  • TCL bindings included. Bindings for many other languages available separately.
  • Well-commented source code with over 95% test coverage.
  • Self-contained: no external dependencies.
  • Sources are in the public domain. Use for any purpose.

What's New

  • Re: Update of SQLite .NET

    Could you give me an estimate about System.Data.SQLite using Sqlite 3.5.8? Grtz, Fabrício
    Posted to Feature Requests (Forum) by fabriciopaiva on 05-09-2008
  • Re: Could not load file or assembly...

    Thanks for your reply, I found the solution however. It turns out I renamed the dll-file to "sqlite.dll" before I referenced it, assuming it would work fine that way. Thus I have a second question. Is it possible to rename the dll-file to a shorter filename than "system.data.sqlite.dll", and if so, how? D~
    Posted to General (Forum) by David on 05-09-2008
  • Include FailIfMissing boolean property to SQLiteConnectionStringBuilder

    There is no FailIfMissing SQLiteConnectionStringBuilder property corresponding to FailIfMissing connection string parameter.
    Posted to Feature Requests (Forum) by SqlRanger on 05-09-2008
  • Re: Could not load file or assembly...

    This can happen when you distribute the 32-bit version of the SQLite assembly to a 64-bit OS and your application is compiled for "Any CPU". It'll attempt to run your app in 64-bit land and will be unable to load the 32-bit SQLite library. So either compile for 32-bits, or distribute the right version of the SQLite assembly that matches...
    Posted to General (Forum) by Robert Simpson on 05-08-2008
  • Could not load file or assembly...

    I have used SQLite to power a rather simple application, but when my mate wanted to try it out it didn't work. He manages to start the application, but as soon as it attempts to access the database, he recieves the following error message: System.IO.FileNotFoundException: Could not load file or assembly 'System.Data.SQLite, Version=1.0.48.0...
    Posted to General (Forum) by David on 05-08-2008

Who Is Online

Powered by Community Server (Commercial Edition), by Telligent Systems