AYUDA .NET

C# SQLite (Cómo funciona para desarrolladores)

Actualizado 14 de noviembre, 2023
Compartir:

Introducción a SQLite

SQLite es un motor de base de datos autónomo, sin servidor y de configuración cero que se utiliza en diversas aplicaciones, incluidas las de escritorio, web y móviles. En este tutorial, nos sumergiremos en el uso de SQLite con C#. Mediante ejemplos sencillos y fácilmente comprensibles, aprenderá a crear, gestionar e interactuar con una base de datos SQLite.

¿Qué es SQLite?

SQLite es una base de datos ligera y eficiente que almacena los datos en un único archivo. A diferencia de las bases de datos tradicionales, no requiere un servidor independiente. Esto lo convierte en una gran opción para aplicaciones que necesitan una base de datos sin la complejidad de un sistema de bases de datos completo.

Configuración de SQLite en un C#

Uso del gestor de paquetes NuGet

Para trabajar con SQLite en un proyecto C#, deberá instalar la biblioteca SQLite necesaria. Esto puede hacerse a través del gestor de paquetes NuGet.

  1. Abra Visual Studio y cree una nueva aplicación de consola.
  2. Haz clic con el botón derecho en el proyecto y selecciona "Gestionar paquetes NuGet".
  3. Busque "SQLite" e instale el paquete.

Establecer una conexión

Cadena de conexión

Una cadena de conexión es una cadena que especifica información sobre una fuente de datos y los medios para conectarse a ella. En SQLite, la cadena de conexión suele tener este aspecto:

string connectionString = "Data Source=mydatabase.db;";
string connectionString = "Data Source=mydatabase.db;";
Dim connectionString As String = "Data Source=mydatabase.db;"
VB   C#

Objeto de conexión

Puede crear un objeto de conexión utilizando la fuente de datos new SQLiteConnection.

using SQLite;
var connection = new SQLiteConnection(connectionString);
using SQLite;
var connection = new SQLiteConnection(connectionString);
Imports SQLite
Private connection = New SQLiteConnection(connectionString)
VB   C#

Creación de una tabla

Crear tabla

Crear una tabla es fundamental cuando se trabaja con cualquier base de datos. A continuación se explica cómo crear una tabla utilizando código SQLite.

string query = "CREATE TABLE person (id INTEGER PRIMARY KEY, name TEXT)";
var command = new SQLiteCommand(query, connection);
command.ExecuteNonQuery();
string query = "CREATE TABLE person (id INTEGER PRIMARY KEY, name TEXT)";
var command = new SQLiteCommand(query, connection);
command.ExecuteNonQuery();
Dim query As String = "CREATE TABLE person (id INTEGER PRIMARY KEY, name TEXT)"
Dim command = New SQLiteCommand(query, connection)
command.ExecuteNonQuery()
VB   C#
  • Id Integer Primary Key: Establece la columna 'id' como clave primaria.
  • Nombre de la tabla: El nombre que desea dar a su tabla de base de datos.

Inserción de datos

Insertar filas

Para insertar datos en una tabla, tendrá que utilizar un comando INSERT.

string query = "INSERT INTO person (name) VALUES ('John')";
var command = new SQLiteCommand(query, connection);
command.ExecuteNonQuery();
string query = "INSERT INTO person (name) VALUES ('John')";
var command = new SQLiteCommand(query, connection);
command.ExecuteNonQuery();
Dim query As String = "INSERT INTO person (name) VALUES ('John')"
Dim command = New SQLiteCommand(query, connection)
command.ExecuteNonQuery()
VB   C#

Comando parametrizado

Los comandos parametrizados pueden proteger su aplicación de ataques de inyección SQL. Este enfoque utiliza parámetros en lugar de insertar valores directamente en la consulta.

string query = "INSERT INTO person (name) VALUES (@name)";
var command = new SQLiteCommand(query, connection);
command.Parameters.AddWithValue("@name", "Iron Developer");
command.ExecuteNonQuery();
string query = "INSERT INTO person (name) VALUES (@name)";
var command = new SQLiteCommand(query, connection);
command.Parameters.AddWithValue("@name", "Iron Developer");
command.ExecuteNonQuery();
Dim query As String = "INSERT INTO person (name) VALUES (@name)"
Dim command = New SQLiteCommand(query, connection)
command.Parameters.AddWithValue("@name", "Iron Developer")
command.ExecuteNonQuery()
VB   C#

Recuperación de datos

Seleccionar declaración

Para recuperar datos de la tabla de la base de datos, utilice una sentencia SELECT.

string query = "SELECT * FROM person";
var command = new SQLiteCommand(query, connection);
var reader = command.ExecuteReader();
while (reader.Read())
{
    Console.WriteLine(reader ["name"]);
}
string query = "SELECT * FROM person";
var command = new SQLiteCommand(query, connection);
var reader = command.ExecuteReader();
while (reader.Read())
{
    Console.WriteLine(reader ["name"]);
}
Dim query As String = "SELECT * FROM person"
Dim command = New SQLiteCommand(query, connection)
Dim reader = command.ExecuteReader()
Do While reader.Read()
	Console.WriteLine(reader ("name"))
Loop
VB   C#

Funciones avanzadas

Transacciones SQLite

Las transacciones permiten ejecutar varias operaciones en una sola acción atómica. A continuación se explica cómo utilizar las transacciones:

var transaction = connection.BeginTransaction();
try
{
    //  Múltiples operaciones de inserción, actualización o eliminación
    transaction.Commit();
}
catch
{
    transaction.Rollback();
}
var transaction = connection.BeginTransaction();
try
{
    //  Múltiples operaciones de inserción, actualización o eliminación
    transaction.Commit();
}
catch
{
    transaction.Rollback();
}
Dim transaction = connection.BeginTransaction()
Try
	'  Múltiples operaciones de inserción, actualización o eliminación
	transaction.Commit()
Catch
	transaction.Rollback()
End Try
VB   C#

Mapeo objeto-relacional (ORM) con Entity Framework

Marco de entidades (EF) es una herramienta ORM muy utilizada en el ecosistema .NET. Simplifica la programación de bases de datos al permitir a los desarrolladores trabajar con datos relacionales utilizando objetos específicos del dominio. A continuación se explica cómo utilizar Entity Framework con SQLite.

1. Instalación de Entity Framework

En primer lugar, asegúrese de haber instalado el paquete NuGet de Entity Framework específico para SQLite:

  1. Abra el gestor de paquetes NuGet en Visual Studio.
  2. Busque "Entity Framework SQLite" e instálelo.

2. Creación de clases de entidades

Las clases de entidad son representaciones de tablas de bases de datos. Puede crear una clase para cada tabla con la que pretenda interactuar.

public class Person
{
    public int Id { get; set; } //  Clave primaria
    public string Name { get; set; }
}
public class Person
{
    public int Id { get; set; } //  Clave primaria
    public string Name { get; set; }
}
Public Class Person
	Public Property Id() As Integer ' -   Clave primaria
	Public Property Name() As String
End Class
VB   C#

3. DbContext

Necesitarás crear una clase que herede de DbContext. Esta clase representa la sesión con la base de datos y permite consultar y guardar instancias de las entidades.

public class MyDbContext : DbContext
{
    public DbSet<Person> Persons { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlite("Data Source=mydatabase.db;");
    }
}
public class MyDbContext : DbContext
{
    public DbSet<Person> Persons { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlite("Data Source=mydatabase.db;");
    }
}
Public Class MyDbContext
	Inherits DbContext

	Public Property Persons() As DbSet(Of Person)

	Protected Overrides Sub OnConfiguring(ByVal optionsBuilder As DbContextOptionsBuilder)
		optionsBuilder.UseSqlite("Data Source=mydatabase.db;")
	End Sub
End Class
VB   C#

4. Operaciones CRUD

Entity Framework simplifica las tareas de creación, lectura, actualización y eliminación (CRUD) operaciones. A continuación se explica cómo insertar un nuevo registro:

using (var db = new MyDbContext())
{
    db.Persons.Add(new Person { Name = "John" });
    db.SaveChanges();
}
using (var db = new MyDbContext())
{
    db.Persons.Add(new Person { Name = "John" });
    db.SaveChanges();
}
Using db = New MyDbContext()
	db.Persons.Add(New Person With {.Name = "John"})
	db.SaveChanges()
End Using
VB   C#

La lectura, actualización y eliminación de registros se simplifican de forma similar y directa con Entity Framework, lo que permite un código conciso y fácil de mantener.

Trabajar con archivos XML y otros proveedores de datos

SQLite no se limita a los datos relacionales; también proporciona flexibilidad en el manejo de otros tipos de datos, incluidos los archivos XML.

1. Almacenamiento de datos XML

Puedes almacenar datos XML en una base de datos SQLite. Esto puede ser útil si trabajas con datos de configuración u otras estructuras jerárquicas.

string xmlData = "<person><name>John</name></person>";
string query = "INSERT INTO xmltable (data) VALUES (@data)";
var command = new SQLiteCommand(query, connection);
command.Parameters.AddWithValue("@data", xmlData);
command.ExecuteNonQuery();
string xmlData = "<person><name>John</name></person>";
string query = "INSERT INTO xmltable (data) VALUES (@data)";
var command = new SQLiteCommand(query, connection);
command.Parameters.AddWithValue("@data", xmlData);
command.ExecuteNonQuery();
Dim xmlData As String = "<person><name>John</name></person>"
Dim query As String = "INSERT INTO xmltable (data) VALUES (@data)"
Dim command = New SQLiteCommand(query, connection)
command.Parameters.AddWithValue("@data", xmlData)
command.ExecuteNonQuery()
VB   C#

Recuperación de datos XML

Puede recuperar datos XML y trabajar con ellos utilizando técnicas estándar de análisis sintáctico de XML en C#.

string query = "SELECT data FROM xmltable WHERE id = 1";
var command = new SQLiteCommand(query, connection);
var reader = command.ExecuteReader();
string xmlData = reader ["data"].ToString();

//  Analiza los datos XML según sea necesario
string query = "SELECT data FROM xmltable WHERE id = 1";
var command = new SQLiteCommand(query, connection);
var reader = command.ExecuteReader();
string xmlData = reader ["data"].ToString();

//  Analiza los datos XML según sea necesario
Dim query As String = "SELECT data FROM xmltable WHERE id = 1"
Dim command = New SQLiteCommand(query, connection)
Dim reader = command.ExecuteReader()
Dim xmlData As String = reader ("data").ToString()

'  Analiza los datos XML según sea necesario
VB   C#

Trabajar con otros proveedores de datos

SQLite también se integra bien con varios proveedores de datos, lo que permite interoperabilidad y flexibilidad. Esto significa que puede cambiar sin problemas entre distintas bases de datos o incluso combinar diferentes fuentes de datos dentro de una misma aplicación.

Presentación del traje de hierro Un potente conjunto de bibliotecas

Tras explorar los reinos de SQLite y los operadores lógicos en C#, ha llegado el momento de presentar una notable colección de herramientas que complementan y mejoran la experiencia de desarrollo en el entorno .NET. El Iron Suit es una colección de potentes bibliotecas compuestas por IronPDF, IronXL, IronOCR e IronBarcode, cada una de las cuales sirve para fines distintos.

IronPDF: C# Biblioteca PDF

IronPDF es una completa biblioteca diseñada para crear, leer y manipular archivos PDF en C#. Ya sea que necesite generar informes, facturas o cualquier documento en formato PDF, IronPDF lo tiene cubierto. Una característica única de IronPDF es la capacidad de convertir HTML a PDF. Puede renderizar HTML como un documento PDF, incluyendo CSS, JavaScript e imágenes, lo que lo convierte en una potente herramienta. Consulte este tutorial en cómo convertir HTML a PDF para obtener una guía paso a paso.

IronPDF puede ser una herramienta esencial cuando se trabaja con bases de datos SQLite. Puede generar informes PDF a partir de los datos de su base de datos SQLite, lo que permite presentar y compartir los datos sin problemas.

IronXL: Excel File Management Made Easy

IronXL permite a los desarrolladores leer, escribir y manipular archivos Excel sin esfuerzo. Es compatible con XLS, XLSX, etc., lo que la convierte en una herramienta ideal para manejar datos de hojas de cálculo. Puede leer archivos de Excel, manipularlos e incluso crear archivos nuevos desde cero. La funcionalidad de IronXL se integra bien con la gestión de bases de datos, incluido SQLite, para exportar e importar datos.

IronOCR: Reconocimiento óptico de caracteres en C#

Con IronOCR escanear texto de imágenes y archivos PDF es pan comido. Es un OCR versátil (Reconocimiento óptico de caracteres) biblioteca que reconoce texto de diversas fuentes.

Imagine almacenar documentos escaneados en una base de datos SQLite y utilizar IronOCR para recuperar y reconocer el texto de esos documentos. Las posibilidades son infinitas y ofrece potentes funciones de recuperación y búsqueda de texto.

IronBarcode: La biblioteca definitiva de generación y lectura de códigos de barras

La generación y lectura de códigos de barras se simplifican con IronBarcode. Admite múltiples formatos de códigos de barras y proporciona una API robusta para todas las necesidades relacionadas con los códigos de barras. IronBarcode puede desempeñar un papel esencial en las aplicaciones que utilizan SQLite, en las que los códigos de barras pueden representar productos u otras entidades de datos. Almacenar y recuperar códigos de barras de la base de datos SQLite mejora la integridad de los datos y facilita un acceso rápido.

Conclusión

SQLite es un motor de base de datos potente pero ligero, ideal tanto para principiantes como para profesionales. Desde la creación de tablas y la inserción de filas hasta la gestión de transacciones y la prevención de ataques de inyección SQL, SQLite ofrece muchas funciones. Tanto si estás creando una consola o una aplicación móvil como si necesitas trabajar con claves externas y conjuntos de datos, SQLite es una opción excelente.

El Iron Suit, compuesto por IronPDF, IronXL, IronOCR e IronBarcode, es un tesoro de herramientas que amplían las capacidades de sus proyectos de desarrollo en C#, tanto si trabaja con bases de datos SQLite como con cualquier otro dominio.

Lo que es aún más atractivo es que cada uno de estos productos ofrece un prueba gratuita el precio de las licencias de estas herramientas es a partir de $749 por producto. Una vez que decida continuar con estas herramientas, la licencia comienza a partir de $749 por producto. También puede adquirir el paquete completo Iron Suit al precio de sólo dos productos individuales.

< ANTERIOR
Signalr C# (Cómo funciona para desarrolladores)
SIGUIENTE >
C# Web App (Cómo funciona para desarrolladores)

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 9,974,197 Ver licencias >
123