Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
En el desarrollo de software moderno, el acceso eficiente a las bases de datos es crucial para el rendimiento y la escalabilidad de las aplicaciones. Dapperun mapeador objeto-relacional ligero(ORM) para .NET, ofrece un enfoque racionalizado de la interacción con las bases de datos. En este artículo, exploraremos cómo utilizar Dapper C# con un archivo de base de datos SQLite, demostrando su sencillez y eficacia mediante ejemplos de código. Además, presentaré la extraordinaria biblioteca de generación de PDF llamadaIronPDF deIron Software.
Dapper es un mapeo objeto-relacional(ORM) para la plataforma .NET. Se trata de un sencillo mapeador de objetos que permite asignar un modelo de dominio orientado a objetos a una base de datos relacional tradicional. Dapper es conocido por su velocidad y rendimiento, y a menudo se le conoce como el "Rey de los Micro ORM". Iguala la velocidad de un lector de datos ADO.NET en bruto y mejora la interfaz IDbConnection con útiles métodos de extensión para consultar bases de datos SQL.
Rendimiento: Dapper es conocido por su excelente rendimiento gracias a su diseño ligero y su eficiente mapeo de objetos.
Simplicidad: La API de Dapper es minimalista e intuitiva, lo que facilita a los desarrolladores su comprensión y uso eficaz.
Soporte de SQL sin procesar: Dapper permite a los desarrolladores escribir consultas SQL sin procesar, proporcionando un control total sobre las interacciones con la base de datos.
Asignación de objetos: Dapper asigna los resultados de las consultas directamente a objetos C#, lo que reduce el código repetitivo y mejora la legibilidad del código.
Consultas parametrizadas: Dapper soporta consultas parametrizadas, protegiendo contra ataques de inyección SQL y mejorando el rendimiento.
Dapper ofrece métodos de extensión asíncronos que reflejan sus homólogos síncronos, lo que permite a los desarrolladores ejecutar consultas de bases de datos de forma asíncrona. Estos métodos asíncronos son ideales para operaciones de E/S, como las consultas a bases de datos, en las que el subproceso principal puede seguir ejecutando otras tareas mientras espera a que se complete la operación de la base de datos.
QueryAsync
: Ejecuta una consulta SQL de forma asíncrona y devuelve el resultado como una secuencia de objetos dinámicos u objetos fuertemente tipados.
QueryFirstOrDefaultAsync
: Ejecuta una consulta SQL de forma asíncrona y devuelve el primer resultado o un valor predeterminado si no se encuentra ningún resultado.
ExecuteAsync
: Ejecuta un comando SQL de forma asíncrona(por ejemplo, INSERT, UPDATE, DELETE) y devuelve el número de filas afectadas.
Configuración del entorno: Antes de sumergirte en los ejemplos de código, asegúrate de tener instaladas las herramientas necesarias:
Visual Studio o Visual Studio Code.
.NET SDK.
Paquete SQLite para .NET.
Para instalar el paquete SQLite, ejecute el siguiente comando en el directorio de su proyecto:
dotnet add package Microsoft.Data.Sqlite
Creación de una base de datos SQLite: Para fines de demostración, vamos a crear un archivo de base de datos SQLite simple llamado "ejemplo.db" con una tabla "Usuarios" que contiene columnas para "Id," "Nombre," y "Email."
CREATE TABLE Users (
Id INTEGER PRIMARY KEY,
Name TEXT,
Email TEXT
);
CREATE TABLE Users (
Id INTEGER PRIMARY KEY,
Name TEXT,
Email TEXT
);
CREATE TABLE Users(Id [INTEGER] PRIMARY KEY, Name TEXT, Email TEXT)
using Microsoft.Data.Sqlite;
using Dapper;
using Microsoft.Data.Sqlite;
using Dapper;
Imports Microsoft.Data.Sqlite
Imports Dapper
string connectionString = "Data Source=example.db"; // SQLite database connection string
using (var connection = new SqliteConnection(connectionString))
{
connection.Open();
// Your Dapper queries will go here
}
string connectionString = "Data Source=example.db"; // SQLite database connection string
using (var connection = new SqliteConnection(connectionString))
{
connection.Open();
// Your Dapper queries will go here
}
Dim connectionString As String = "Data Source=example.db" ' SQLite database connection string
Using connection = New SqliteConnection(connectionString)
connection.Open()
' Your Dapper queries will go here
End Using
// Define a class to represent the structure of a user
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
}
// Query to select all users or default value
string query = "SELECT * FROM Users"; // var sql queries
var users = connection.Query<User>(query).ToList();
// Display the results
foreach (var user in users)
{
Console.WriteLine($"Id: {user.Id}, Name: {user.Name}, Email: {user.Email}");
}
// Define a class to represent the structure of a user
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
}
// Query to select all users or default value
string query = "SELECT * FROM Users"; // var sql queries
var users = connection.Query<User>(query).ToList();
// Display the results
foreach (var user in users)
{
Console.WriteLine($"Id: {user.Id}, Name: {user.Name}, Email: {user.Email}");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
// Define a new user
var newUser = new User { Name = "John Doe", Email = "john@example.com" };
// user generated SQL query/stored procedure to insert a new user
string insertQuery = "INSERT INTO Users (Name, Email) VALUES (@Name, @Email)";
// Execute the query
connection.Execute(insertQuery, newUser);
// Define a new user
var newUser = new User { Name = "John Doe", Email = "john@example.com" };
// user generated SQL query/stored procedure to insert a new user
string insertQuery = "INSERT INTO Users (Name, Email) VALUES (@Name, @Email)";
// Execute the query
connection.Execute(insertQuery, newUser);
IRON VB CONVERTER ERROR developers@ironsoftware.com
IronPDF es una biblioteca C# deIron Software que permite a los desarrolladores crear, editar y manipular documentos PDF mediante programación dentro de aplicaciones .NET. Ofrece funciones como generar documentos PDF a partir de HTML, imágenes y otros formatos, así como añadir texto, imágenes y diversos elementos a archivos PDF existentes. IronPDF pretende simplificar las tareas de generación y manipulación de PDF para desarrolladores .NET proporcionando un completo conjunto de herramientas y API.
IronPDF ofrece una serie de funciones para la generación y manipulación de PDF dentro de aplicaciones .NET:
Conversión de HTML a PDF: Convierte contenido HTML, incluidos estilos CSS, en documentos PDF.
Conversión de imágenes a PDF: Convierte imágenes(como JPEG, PNG, BMP) a documentos PDF.
Conversión de texto a PDF: Convierte texto sin formato o con formato(RTF) a documentos PDF.
Generación de PDF: Cree documentos PDF desde cero mediante programación.
Edición de PDF: Edite documentos PDF existentes añadiendo o modificando texto, imágenes y otros elementos.
Fusión y división de PDF: Combine varios documentos PDF en un único documento o divida un documento PDF en varios archivos.
Seguridad PDF: Aplique protección por contraseña y cifrado a los documentos PDF para restringir el acceso y proteger la información confidencial.
Relleno de formularios PDF: Rellene formularios PDF con datos mediante programación.
Impresión PDF: Imprima documentos PDF directamente desde su aplicación .NET.
Ajustes de conversión de PDF: Personalice varios ajustes como el tamaño de página, la orientación, los márgenes, la compresión y mucho más durante la generación de PDF.
Extracción de texto PDF: Extraiga contenido de texto de documentos PDF para su posterior procesamiento o análisis.
Crear una aplicación de consola en Visual Studio
Indique el nombre y la ubicación del proyecto
Seleccione la versión .NET
Instale los siguientes paquetes desde el gestor de paquetes de Visual Studio o desde la consola
dotnet add package Microsoft.Data.Sqlite
dotnet add package Dapper --version 2.1.35
dotnet add package IronPdf --version 2024.4.2
dotnet add package IronPdf --version 2024.4.2
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronPdf --version 2024.4.2
Utilice el siguiente código para generar un documento PDF
using Dapper;
using IronPdf;
using Microsoft.Data.Sqlite;
string connectionString = "Data Source=ironPdf.db"; // sql server database connection string
var content = "<h1>Demonstrate IronPDF with Dapper</h1>";
content += "<h2>Create a new database using Microsoft.Data.Sqlite</h2>";
content += "<p>new SqliteConnection(connectionString) and connection.Open()</p>";
using (var connection = new SqliteConnection(connectionString))
{
connection.Open();
content += "<h2>Create a Users Table using dapper and insert sql query</h2>";
content += "<p>CREATE TABLE IF NOT EXISTS Users</p>";
// create table
string sql = "CREATE TABLE IF NOT EXISTS Users (\n Id INTEGER PRIMARY KEY,\n Name TEXT,\n Email TEXT\n);";
connection.Execute(sql);
content += "<h2>Add Users to table using Dapper</h2>";
content += AddUser(connection, new User { Name = "John Doe", Email = "john@example.com" });
content += AddUser(connection, new User { Name = "Smith William", Email = "Smith@example.com" });
content += AddUser(connection, new User { Name = "Rock Bill", Email = "Rock@example.com" });
content += AddUser(connection, new User { Name = "Jack Sparrow", Email = "Jack@example.com" });
content += AddUser(connection, new User { Name = "Tomus Tibe", Email = "Tomus@example.com" });
content += "<h2>Get Users From table using Dapper</h2>";
// Query to select all users or default value
string query = "SELECT * FROM Users"; // var sql queries
var users = connection.Query<User>(query).ToList();
foreach (var user in users)
{
content += $"<p>Id:{user.Id}, Name:{user.Name}, email: {user.Email}</p>";
Console.WriteLine($"{user.Id}. User Name:{user.Name}, Email:{user.Email}");
}
// create Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from HTML string
var pdf = renderer.RenderHtmlAsPdf(content);
// Save to a file or Stream
pdf.SaveAs("dapper.pdf");
}
string AddUser(SqliteConnection sqliteConnection, User user)
{
// user generated SQL query/stored procedure to insert a new user
string insertQuery = "INSERT INTO Users (Name, Email) VALUES (@Name, @Email)";
// Execute the query
sqliteConnection.Execute(insertQuery, user);
return $"<p>Name:{user.Name}, email: {user.Email}</p>";
}
using Dapper;
using IronPdf;
using Microsoft.Data.Sqlite;
string connectionString = "Data Source=ironPdf.db"; // sql server database connection string
var content = "<h1>Demonstrate IronPDF with Dapper</h1>";
content += "<h2>Create a new database using Microsoft.Data.Sqlite</h2>";
content += "<p>new SqliteConnection(connectionString) and connection.Open()</p>";
using (var connection = new SqliteConnection(connectionString))
{
connection.Open();
content += "<h2>Create a Users Table using dapper and insert sql query</h2>";
content += "<p>CREATE TABLE IF NOT EXISTS Users</p>";
// create table
string sql = "CREATE TABLE IF NOT EXISTS Users (\n Id INTEGER PRIMARY KEY,\n Name TEXT,\n Email TEXT\n);";
connection.Execute(sql);
content += "<h2>Add Users to table using Dapper</h2>";
content += AddUser(connection, new User { Name = "John Doe", Email = "john@example.com" });
content += AddUser(connection, new User { Name = "Smith William", Email = "Smith@example.com" });
content += AddUser(connection, new User { Name = "Rock Bill", Email = "Rock@example.com" });
content += AddUser(connection, new User { Name = "Jack Sparrow", Email = "Jack@example.com" });
content += AddUser(connection, new User { Name = "Tomus Tibe", Email = "Tomus@example.com" });
content += "<h2>Get Users From table using Dapper</h2>";
// Query to select all users or default value
string query = "SELECT * FROM Users"; // var sql queries
var users = connection.Query<User>(query).ToList();
foreach (var user in users)
{
content += $"<p>Id:{user.Id}, Name:{user.Name}, email: {user.Email}</p>";
Console.WriteLine($"{user.Id}. User Name:{user.Name}, Email:{user.Email}");
}
// create Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from HTML string
var pdf = renderer.RenderHtmlAsPdf(content);
// Save to a file or Stream
pdf.SaveAs("dapper.pdf");
}
string AddUser(SqliteConnection sqliteConnection, User user)
{
// user generated SQL query/stored procedure to insert a new user
string insertQuery = "INSERT INTO Users (Name, Email) VALUES (@Name, @Email)";
// Execute the query
sqliteConnection.Execute(insertQuery, user);
return $"<p>Name:{user.Name}, email: {user.Email}</p>";
}
Imports Microsoft.VisualBasic
Imports Dapper
Imports IronPdf
Imports Microsoft.Data.Sqlite
Private connectionString As String = "Data Source=ironPdf.db" ' sql server database connection string
Private content = "<h1>Demonstrate IronPDF with Dapper</h1>"
Private content &= "<h2>Create a new database using Microsoft.Data.Sqlite</h2>"
Private content &= "<p>new SqliteConnection(connectionString) and connection.Open()</p>"
Using connection = New SqliteConnection(connectionString)
connection.Open()
content &= "<h2>Create a Users Table using dapper and insert sql query</h2>"
content &= "<p>CREATE TABLE IF NOT EXISTS Users</p>"
' create table
Dim sql As String = "CREATE TABLE IF NOT EXISTS Users (" & vbLf & " Id INTEGER PRIMARY KEY," & vbLf & " Name TEXT," & vbLf & " Email TEXT" & vbLf & ");"
connection.Execute(sql)
content &= "<h2>Add Users to table using Dapper</h2>"
content += AddUser(connection, New User With {
.Name = "John Doe",
.Email = "john@example.com"
})
content += AddUser(connection, New User With {
.Name = "Smith William",
.Email = "Smith@example.com"
})
content += AddUser(connection, New User With {
.Name = "Rock Bill",
.Email = "Rock@example.com"
})
content += AddUser(connection, New User With {
.Name = "Jack Sparrow",
.Email = "Jack@example.com"
})
content += AddUser(connection, New User With {
.Name = "Tomus Tibe",
.Email = "Tomus@example.com"
})
content &= "<h2>Get Users From table using Dapper</h2>"
' Query to select all users or default value
Dim query As String = "SELECT * FROM Users" ' var sql queries
Dim users = connection.Query(Of User)(query).ToList()
For Each user In users
content += $"<p>Id:{user.Id}, Name:{user.Name}, email: {user.Email}</p>"
Console.WriteLine($"{user.Id}. User Name:{user.Name}, Email:{user.Email}")
Next user
' create Renderer
Dim renderer = New ChromePdfRenderer()
' Create a PDF from HTML string
Dim pdf = renderer.RenderHtmlAsPdf(content)
' Save to a file or Stream
pdf.SaveAs("dapper.pdf")
End Using
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'string AddUser(SqliteConnection sqliteConnection, User user)
'{
' ' user generated SQL query/stored procedure to insert a new user
' string insertQuery = "INSERT INTO Users (Name, Email) VALUES (@Name, @Email)";
' ' Execute the query
' sqliteConnection.Execute(insertQuery, user);
' Return string.Format("<p>Name:{0}, email: {1}</p>", user.Name, user.Email);
'}
Comience por crear un soporte de contenido de cadena para la generación de PDF
Crear una nueva base de datos utilizando Microsoft.Data.Sqlite
, connection.Open()
creará una base de datos vacía
Crear una Tabla de Usuarios usando Dapper e insertar una consulta SQL
Añadir usuarios a la tabla utilizando Dapper con consultas de inserción
Consulta para seleccionar todos los usuarios o el valor por defecto
ChromePdfRenderer
y SaveAs
IronPDFinformación sobre licencias está disponible para garantizar la conformidad y el uso dentro de su proyecto.
Se puede obtener una licencia de prueba para desarrolladores a través de la página webPágina de licencia de prueba de IronPDF.
Por favor, sustituya la clave en el archivo appSettings.json
que se muestra a continuación
{
"IronPdf.License.LicenseKey" : "The Key Goes Here"
}
{
"IronPdf.License.LicenseKey" : "The Key Goes Here"
}
If True Then
"IronPdf.License.LicenseKey" : "The Key Goes Here"
End If
Dapper simplifica el acceso a los datos en las aplicaciones .NET y, combinado con SQLite, proporciona una solución ligera y eficaz para gestionar bases de datos. Siguiendo los pasos descritos en este artículo, puede aprovechar Dapper para interactuar con bases de datos SQLite sin problemas, lo que le permite crear aplicaciones robustas y escalables con facilidad. Junto con IronPDF, los desarrolladores pueden adquirir conocimientos relacionados con bases de datos ORM como Dapper y bibliotecas de generación de PDF como IronPDF.
9 productos API .NET para sus documentos de oficina