IRONSOFTWAREHOME
ACTUALIZACIONES PARA DESARROLLADORES

Sqlite C# .NET (Cómo funciona para desarrolladores)

Jacob Mellor, Director de Tecnología @ Team Iron
Jacob Mellor
Updated: 21 de abril de 2026

SQLite es un motor de base de datos relacional popular, ligero y autónomo que se utiliza ampliamente en diversas aplicaciones de acceso a datos y plataformas de entorno. En el contexto del desarrollo .NET, el código fuente de SQLite es una excelente opción para integrar un control de solución de base de datos confiable en sus aplicaciones de sistema. Este artículo explorará el mundo de las transacciones SQLite, analizando sus características, ventajas y cómo usarlas eficazmente en sus proyectos .NET.

Cómo usar SQLite en C#

  1. Descargar la biblioteca de SQLite
  2. Crear una base de datos e insertar los datos
  3. Leer usando el lector
  4. Usar SQLite mediante el método de consulta de Entity Framework y LINQ
  5. Generar informe en PDF usando IronPDF

¿Qué es SQLite?

SQLite es un motor de base de datos de código abierto popular que se puede incrustar en aplicaciones sin requerir un componente de servidor separado. Es rápido, fiable y multiplataforma. SQLite puede utilizarse con aplicaciones de proyectos .NET a través de diversas bibliotecas que proporcionan interfaces de ADO.NET. Una de estas bibliotecas es Microsoft.Data.SQLite. Esto le permite usar SQLite como fuente de datos para sus aplicaciones .NET, ya sean de consola, escritorio, web o móviles. También puede usar Entity Framework Core para realizar mapeo objeto-relacional y consultar su base de datos SQLite usando LINQ.

Este artículo te muestra cómo usar Microsoft.Data.Sqlite para desarrollar, conectar y manipular una base de datos SQLite en una aplicación de consola .NET. Aprenderá cómo:

  • Instalar el paquete NuGet de Microsoft.Data.Sqlite
  • Crear una conexión SQLite y ejecutar comandos SQL
  • Crear y poblar tablas usando lectores de datos y parámetros
  • Consultar datos usando lectores de datos
  • Implementar EntityFramework Core
  • Consultar datos usando LINQ
  • Generar informe en PDF

Instalación de la biblioteca SQLite

Para usar Microsoft.Data.Sqlite, necesita instalar el paquete NuGet que contiene la biblioteca y sus dependencias. Puede hacer esto usando el administrador de paquetes de Visual Studio, el CLI de .NET Core o cualquier otra herramienta que soporte NuGet. Este artículo utiliza el administrador de paquetes para crear una aplicación de consola e instalar Microsoft.Data.Sqlite. Para hacerlo, abra una consola del administrador de paquetes y ejecute los siguientes comandos:

PM > Install-Package Microsoft.Data.Sqlite

El comando anterior instalará el paquete como se muestra a continuación.

Creación de una base de datos SQLite

Para trabajar con una base de datos SQLite, necesitas crear un objeto SqliteConnection que represente la conexión al archivo de base de datos. Puedes especificar el nombre del archivo y otras opciones en la cadena de conexión. Si el archivo no existe, se creará automáticamente. Por ejemplo, el siguiente programa crea una conexión a un archivo de base de datos llamado employee.db en el directorio actual:

using (var connection = new SqliteConnection("Data Source=employee.db"))
{
    connection.Open();
    // ...
}

La instrucción using asegura que la conexión se cierre y se elimine cuando salga del alcance. Para ejecutar comandos SQL, necesitas crear un objeto SqlCommand y asociarlo con la conexión. Puedes establecer la propiedad CommandText a la sentencia SQL que deseas ejecutar, y opcionalmente agregar parámetros a la colección Parameters. Luego puedes llamar a uno de los métodos del objeto SqlCommand para ejecutar el comando, como ExecuteNonQuery, ExecuteScalar o ExecuteReader.

Crear tabla en SQLite

El siguiente código crea una tabla llamada Employee usando el método ExecuteNonQuery:

using (var connection = new SqliteConnection("Data Source=employee.db"))
{
    connection.Open();
    var command = connection.CreateCommand();
    command.CommandText = @"CREATE TABLE Employee (
        Id INTEGER PRIMARY KEY,
        FirstName TEXT NOT NULL,
        LastName TEXT NOT NULL,
        Designation TEXT NOT NULL )";
    command.ExecuteNonQuery();
}

Insertar datos en una tabla

Para insertar datos en una tabla, puedes usar el mismo objeto SqlCommand y establecer la propiedad CommandText a una sentencia INSERT. Por ejemplo, el siguiente código inserta tres filas en la tabla Employee.

using (var connection = new SqliteConnection("Data Source=employee.db"))
{
    var command = connection.CreateCommand();
    StringBuilder builder = new StringBuilder();
    builder.Append("INSERT INTO Employee VALUES(1, 'John', 'Sami', 'CEO');");
    builder.Append("INSERT INTO Employee VALUES(2, 'David', 'Watson', 'Software Engineer');");
    builder.Append("INSERT INTO Employee VALUES(3, 'Victor', 'Khan', 'Content Writer');");
    connection.Open();
    command.CommandText = builder.ToString();
    command.ExecuteNonQuery();
}

Leer datos de SQLite

Para leer datos de una tabla, puedes usar el método ExecuteReader del objeto SqlCommand y establecer la propiedad CommandText a una sentencia SELECT. Esto devolverá un objeto SqliteDataReader que te permitirá iterar sobre las filas y acceder a los valores por nombre de columna o índice. Puedes usar el método Read para moverte a la siguiente fila, y los métodos GetXXX para obtener los valores como el tipo de dato apropiado. Por ejemplo, el siguiente código lee todas las filas de la tabla Employee y las imprime en la consola:

using (var connection = new SqliteConnection("Data Source=employee.db"))
{
    var command = connection.CreateCommand();
    command.CommandText = @"SELECT * FROM Employee";
    connection.Open();
    using (var reader = command.ExecuteReader())
    {
        while (reader.Read())
        {
            var id = reader.GetInt32(0);
            string firstName = reader.GetString(1);
            string lastName = reader.GetString(2);
            string designation = reader.GetString(3);
            Console.WriteLine($"{id}: {firstName} - {lastName} - {designation}");
        }
    }
}

Resultado

La salida de este código es:

Sqlite C# .NET (Cómo Funciona Para el Desarrollador): Figura 1 - Salida

Consulta de datos

Si prefiere usar LINQ para consultar su base de datos SQLite, puede usar Entity Framework Core para mapear sus tablas a clases y realizar consultas usando expresiones LINQ. Para hacer esto, necesita instalar el paquete Microsoft.EntityFrameworkCore.Sqlite, que depende del paquete Microsoft.Data.Sqlite. También necesitas crear una clase que herede de DbContext y represente el contexto de la base de datos. Esta clase debe tener un constructor que acepte un parámetro DbContextOptions y lo pase al constructor base. También debe tener una propiedad DbSet para cada tabla que desees mapear a una clase. Por ejemplo, el siguiente código define una clase Stock y una clase DatabaseContext:

using Microsoft.EntityFrameworkCore;
public class Stock
{
    public int Id { get; set; }
    public string Name { get; set; } = string.Empty;
    public string Symbol { get; set; } = string.Empty;
    public double Price { get; set; }
}
public class DatabaseContext : DbContext
{
    public DatabaseContext(DbContextOptions options) : base(options) { }
    public DbSet<Stock> Stock { get; set; }
}

Para crear el contexto de la base de datos, necesitas usar la clase DbContextOptionsBuilder y especificar la cadena de conexión y el proveedor de la base de datos. También puedes usar el método Database.EnsureCreated para crear la base de datos y las tablas si no existen. Por ejemplo, el siguiente código crea el contexto de la base de datos y la base de datos:

var optionsBuilder = new DbContextOptionsBuilder<DatabaseContext>();
optionsBuilder.UseSqlite("Data Source=stock.db");
using (var context = new DatabaseContext(optionsBuilder.Options))
{
    context.Database.EnsureCreated();
}

Para insertar datos en la base de datos, puedes usar los métodos Add o AddRange de la propiedad DbSet y pasar los objetos que deseas insertar. También puedes usar el método SaveChanges para comprometer los cambios a la base de datos. Por ejemplo, el siguiente código inserta tres Stocks en la base de datos:

static void Main(string[] args)
{
    var optionsBuilder = new DbContextOptionsBuilder<DatabaseContext>();
    optionsBuilder.UseSqlite("Data Source=stock.db");
    using (var context = new DatabaseContext(optionsBuilder.Options))
    {
        context.Database.EnsureCreated();
        var stock = new List<Stock> {
            new Stock { Id = 1, Name = "NCR", Symbol = "$$", Price = 5.6 },
            new Stock { Id = 2, Name = "Google", Symbol = "GG", Price = 10.6 },
            new Stock { Id = 3, Name = "Apple", Symbol = "AA", Price = 3.6 }
        };
        context.AddRange(stock);
        context.SaveChanges();
    }
}

Para consultar datos, puedes usar los métodos o expresiones LINQ sobre la propiedad DbSet y aplicar filtros, proyecciones, agregaciones y otras operaciones. Las consultas se traducirán a declaraciones SQL y se ejecutarán en la base de datos. Por ejemplo, el siguiente código consulta los stocks cuyo precio es menor a seis dólares e imprime sus nombres:

using (var context = new DatabaseContext(optionsBuilder.Options))
{
    var cheapStocks = context.Stock.Where(p => p.Price < 6).Select(p => p.Name);
    Console.WriteLine("Stock Less than $6 are:");
    foreach (string stock in cheapStocks)
    {
        Console.WriteLine(stock);
    }
}

Supongamos que tenemos un escenario donde necesitamos crear un archivo PDF que contenga la lista de Stocks. Podemos hacer eso fácilmente usando IronPDF.

Presentando IronPDF

IronPDF es una biblioteca que le ayuda a crear, editar y leer archivos PDF en sus aplicaciones .NET sin la necesidad de múltiples paquetes. Puede generar PDFs desde HTML, URL, JavaScript, CSS y muchos formatos de imagen, así como agregar encabezados, pies de página, firmas, archivos adjuntos y contraseñas. También soporta compatibilidad multiplataforma, multihilos y soporte asincrónico.

La función HTML a PDF de IronPDF es su principal destacado, preservando todos los diseños y estilos. Genera PDFs a partir de contenido web, ideal para informes, facturas y documentación. Puedes convertir archivos HTML, URLs y cadenas HTML a PDFs de manera fluida.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

Instalar IronPDF

Para instalar IronPDF en nuestro proyecto, escriba el siguiente comando en la consola del administrador de paquetes.

PM > Install-Package IronPdf

Este comando instalará IronPDF junto con todas sus dependencias.

Agregar clave de licencia

IronPDF requiere una clave de licencia para usarlo. Podemos obtener fácilmente una clave de licencia de prueba desde la Página de Licencia de Prueba de IronPDF.

Agregue este código al inicio de su aplicación antes de que se use IronPDF. Este enfoque es universalmente efectivo y sencillo, funcionando tanto para aplicaciones de .NET Core como de .NET Framework.

IronPdf.License.LicenseKey = "IRONSUITE.ABC.XYZ.MYCOMPANY.COM.ABC-DEPLOYMENT.TRIAL-P45MXL.TRIAL.EXPIRES.31.JAN.2028";

Crear archivo PDF con lista de existencias

Este código de C# genera un informe en PDF a partir de datos de stocks almacenados en una base de datos SQLite. Crea dinámicamente una tabla HTML, la llena con información de stock y utiliza un renderizador de PDF basado en Chrome para convertir la tabla en un archivo "stock.pdf" descargable, facilitando la elaboración de informes y distribución de detalles de stocks.

var optionsBuilder = new DbContextOptionsBuilder<DatabaseContext>();
optionsBuilder.UseSqlite("Data Source=stock.db");
StringBuilder builder = new StringBuilder();
string style="<!DOCTYPE html>\r\n<html>\r\n<head>\r\n<style>\r\n#stock {\r\n  font-family: Arial, Helvetica, sans-serif;\r\n  border-collapse: collapse;\r\n  width: 100%;\r\n}\r\n\r\n#stock td, #stock th {\r\n  border: 1px solid #ddd;\r\n  padding: 8px;\r\n}\r\n\r\n#stock tr:nth-child(even){background-color: #f2f2f2;}\r\n\r\n#stock tr:hover {background-color: #ddd;}\r\n\r\n#stock th {\r\n  padding-top: 12px;\r\n  padding-bottom: 12px;\r\n  text-align: left;\r\n  background-color: #04AA6D;\r\n  color: white;\r\n}\r\n</style>\r\n</head>\r\n<body>\r\n\r\n<h1>A Stock Table</h1>";
builder.Append(style);
builder.Append("<table id=\"stock\"><tr><td>Stock Symbol</td><td>Stock Name</td><td>Stock Price</td></tr>");
using (var context = new DatabaseContext(optionsBuilder.Options))
{
    var stocks = context.Stock;
    foreach (Stock stock in stocks)
    {
        builder.Append($"<tr><td>{stock.Symbol}</td><td>{stock.Name}</td><td>{stock.Price}</td></tr>");
    }
}
builder.Append("</table></body></html>");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(builder.ToString());
pdf.SaveAs("stock.pdf");

El fragmento de código C# anterior está diseñado para crear una tabla HTML que muestra información de stock desde una base de datos SQLite y posteriormente convertirla en un archivo PDF. Utiliza la biblioteca Entity Framework Core para interactuar con la base de datos. Inicialmente, configura un DbContextOptionsBuilder para usar SQLite con una cadena de conexión específica. El código luego construye una cadena HTML con estilos CSS incrustados para la apariencia de la tabla, crea una estructura de tabla con encabezados, consulta la base de datos SQLite para obtener información del stock, llena la tabla HTML con los datos recuperados y finalmente, utiliza un renderizador de PDF basado en Chrome para convertir el contenido HTML en un archivo PDF llamado "stock.pdf". El PDF resultante contendrá una tabla presentando símbolos de stocks, nombres y precios.

El resultado es el siguiente

Sqlite C# .NET (Cómo Funciona Para el Desarrollador): Figura 2 - Salida de Tabla de Existencias

Conclusión

En conclusión, aprovechar SQLite en .NET para la gestión de bases de datos ofrece una solución ligera y versátil. Este artículo exploró la integración de SQLite en aplicaciones .NET, mostrando sus características clave y ventajas. El código proporcionado demostró pasos prácticos para crear, conectar y manipular una base de datos SQLite en una aplicación de consola .NET. Además, destacó el uso de Microsoft.Data.Sqlite y Entity Framework Core para un manejo eficiente de datos. La incorporación de IronPDF ilustró cómo generar un informe PDF de la base de datos SQLite sin problemas, mejorando las capacidades de la aplicación para la elaboración de informes y distribución de datos.

IronPDF ofrece varias opciones de licencias, dependiendo del número de desarrolladores, ubicaciones, proyectos y necesidades de redistribución. Las licencias son perpetuas e incluyen un año de soporte y actualizaciones gratuitas.

Jacob Mellor, Director de Tecnología @ Team Iron
Director de Tecnología

Jacob Mellor es Director de Tecnología de Iron Software y un ingeniero visionario pionero en la tecnología C# PDF. Como desarrollador original de la base de código principal de Iron Software, ha dado forma a la arquitectura de productos de la empresa desde su creación, transformándola, junto con el director ejecutivo Cameron Rimington, en una empresa de más de 50 personas que presta servicios a la NASA, Tesla y organismos gubernamentales de todo el mundo.

...
Leer más

Artículos Relacionados

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta