SQLite es una base de datos SQL basada en un sistema de archivos de código abierto, pequeña, rápida e integrable. No tiene un componente de servidor separado como las bases de datos tradicionales. Más bien, lee y escribe datos directamente en archivos de disco. Una base de datos SQLite está integrada con la aplicación que accede a la base de datos. El formato de archivo de la base de datos SQLite es multiplataforma y se puede copiar entre sistemas de archivos de 32 y 64 bits. Debido a la arquitectura sin servidor, los desarrolladores no necesitan instalar SQLite antes de usarlo. Todas las transacciones de SQLite son totalmente compatibles con ACID; eso significa que todas las consultas y cambios son atómicos, consistentes, aislados y duraderos. El código fuente de SQLite es público y de uso gratuito para cualquier propósito, comercial o privado.
Introducción a SQLite desde un proyecto .NET
Creemos un proyecto en Visual Studio para demostrar las capacidades de SQLite. Abra Visual Studio, seleccione un nuevo proyecto y, en Visual C#, seleccione "Aplicación de consola" y proporcione el nombre como SQLiteDemo. Haga clic en Aceptar.
Para conectar SQLite con C#, necesitamos controladores.
Instale todos los recursos necesarios de SQLite desde el paquete NuGet
Para instalar el controlador, haga clic con el botón derecho en la solución y vaya a "Administrar paquetes NuGet". En la barra de búsqueda, escriba "SQLite" e instale el paquete que aparece
A continuación, copie y pegue el siguiente código en su archivo Program.cs. Este código creará una conexión SQLite, agregará tablas, insertará filas y, finalmente, leerá los datos de las tablas y los mostrará en la consola. Asegúrese de copiar el código exactamente como está escrito, de lo contrario, es posible que no funcione.
using System;
using System.Collections.Generic;
using System.Data.SQLite;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SQLiteDemo
{
class Program
{
static void Main(string[] args)
{
SQLiteConnection sqlite_conn;
sqlite_conn = CreateConnection();
CreateTable(sqlite_conn);
InsertData(sqlite_conn);
ReadData(sqlite_conn);
}
static SQLiteConnection CreateConnection()
{
SQLiteConnection sqlite_conn;
// Create a new database connection:
sqlite_conn = new SQLiteConnection("Data Source=
database.db;Version=3;New=True;Compress=True;");
// Open the connection:
try
{
sqlite_conn.Open();
}
catch (Exception ex)
{
}
return sqlite_conn;
}
static void CreateTable(SQLiteConnection conn)
{
SQLiteCommand sqlite_cmd;
string strSqlCreateMyTable = "CREATE TABLE MyTable
(Column_one VARCHAR(30), Column_two INT)";
sqlite_cmd = conn.CreateCommand();
sqlite_cmd.CommandText = strSqlCreateMyTable;
sqlite_cmd.ExecuteNonQuery();
}
static void InsertData(SQLiteConnection conn)
{
SQLiteCommand sqlite_cmd;
sqlite_cmd = conn.CreateCommand();
sqlite_cmd.CommandText = "INSERT INTO MyTable
(Column_one, Column_two) VALUES ('Some Text 1 ', 1);";
sqlite_cmd.ExecuteNonQuery();
sqlite_cmd.CommandText = "INSERT INTO MyTable
(Column_one, Column_two) VALUES ('Some Text 2 ', 2);";
sqlite_cmd.ExecuteNonQuery();
sqlite_cmd.CommandText = "INSERT INTO MyTable
(Column_one, Column_two) VALUES ('Some Text 2 ', 3);";
sqlite_cmd.ExecuteNonQuery();
}
static void ReadData(SQLiteConnection conn)
{
SQLiteDataReader sqlite_datareader;
SQLiteCommand sqlite_cmd;
sqlite_cmd = conn.CreateCommand();
sqlite_cmd.CommandText = "SELECT * FROM MyTable";
sqlite_datareader = sqlite_cmd.ExecuteReader();
while (sqlite_datareader.Read())
{
string myreader = sqlite_datareader.GetString(0);
Console.WriteLine(myreader);
}
conn.Close();
}
}
}
Finalmente ejecuta el programa, y verás el siguiente resultado