Ir para o conteúdo do rodapé
AJUDA DO .NET

C# SQLite (Como funciona para desenvolvedores)

Introdução ao SQLite

O SQLite é um mecanismo de banco de dados independente, sem servidor e de configuração zero, usado em diversas aplicações, incluindo aplicações desktop, web e móveis. Neste tutorial, vamos explorar o uso do SQLite com C#. Utilizando exemplos simples e fáceis de entender, você aprenderá como criar, gerenciar e interagir com um banco de dados SQLite.

O que é SQLite?

O SQLite é um banco de dados leve e eficiente que armazena dados em um único arquivo. Ao contrário dos bancos de dados tradicionais, ele não requer um servidor separado. Isso a torna uma ótima opção para aplicações que precisam de um banco de dados sem a complexidade de um sistema de banco de dados completo.

Configurando o SQLite em C

Usando o Gerenciador de Pacotes NuGet

Para trabalhar com o SQLite em um projeto C#, você precisará instalar a biblioteca SQLite necessária. Isso pode ser feito através do Gerenciador de Pacotes NuGet .

  1. Abra o Visual Studio e crie um novo aplicativo de console.
  2. Clique com o botão direito do mouse no projeto e selecione "Gerenciar pacotes NuGet ".
  3. Procure por "SQLite" e instale o pacote.

Estabelecendo uma conexão

Cadeia de conexão

Uma string de conexão é uma sequência de caracteres que especifica informações sobre uma fonte de dados e os meios de conexão a ela. No SQLite, a string de conexão geralmente terá a seguinte aparência:

string connectionString = "Data Source=mydatabase.db;";
string connectionString = "Data Source=mydatabase.db;";
Dim connectionString As String = "Data Source=mydatabase.db;"
$vbLabelText   $csharpLabel

Objeto de Conexão

Você pode criar um objeto de conexão usando a classe SQLiteConnection do namespace System.Data.SQLite.

using System.Data.SQLite;

// Initialize a connection to the SQLite database
var connection = new SQLiteConnection(connectionString);

// Open the connection
connection.Open();
using System.Data.SQLite;

// Initialize a connection to the SQLite database
var connection = new SQLiteConnection(connectionString);

// Open the connection
connection.Open();
Imports System.Data.SQLite

' Initialize a connection to the SQLite database
Private connection = New SQLiteConnection(connectionString)

' Open the connection
connection.Open()
$vbLabelText   $csharpLabel

Criando uma tabela

Criar tabela

A criação de uma tabela é fundamental ao trabalhar com qualquer banco de dados. Veja como criar uma tabela usando código SQLite.

// SQL command to create a new table "person"
string query = "CREATE TABLE IF NOT EXISTS person (id INTEGER PRIMARY KEY, name TEXT)";

// Create a command object with the SQL query and connection
var command = new SQLiteCommand(query, connection);

// Execute the command to create the table
command.ExecuteNonQuery();
// SQL command to create a new table "person"
string query = "CREATE TABLE IF NOT EXISTS person (id INTEGER PRIMARY KEY, name TEXT)";

// Create a command object with the SQL query and connection
var command = new SQLiteCommand(query, connection);

// Execute the command to create the table
command.ExecuteNonQuery();
' SQL command to create a new table "person"
Dim query As String = "CREATE TABLE IF NOT EXISTS person (id INTEGER PRIMARY KEY, name TEXT)"

' Create a command object with the SQL query and connection
Dim command = New SQLiteCommand(query, connection)

' Execute the command to create the table
command.ExecuteNonQuery()
$vbLabelText   $csharpLabel
  • Chave primária inteira para o ID: Define a coluna 'id' como chave primária.
  • Nome da tabela: O nome que você deseja dar à sua tabela de banco de dados.

Inserindo dados

Inserir linhas

Para inserir dados em uma tabela, você precisará usar um comando INSERT.

// SQL command to insert a new row into the "person" table
string query = "INSERT INTO person (name) VALUES ('John')";
var command = new SQLiteCommand(query, connection);
command.ExecuteNonQuery();
// SQL command to insert a new row into the "person" table
string query = "INSERT INTO person (name) VALUES ('John')";
var command = new SQLiteCommand(query, connection);
command.ExecuteNonQuery();
' SQL command to insert a new row into the "person" table
Dim query As String = "INSERT INTO person (name) VALUES ('John')"
Dim command = New SQLiteCommand(query, connection)
command.ExecuteNonQuery()
$vbLabelText   $csharpLabel

Comando parametrizado

Comandos parametrizados podem proteger sua aplicação contra ataques de injeção de SQL. Essa abordagem utiliza parâmetros em vez de inserir valores diretamente na consulta.

// SQL command with a parameter to insert data safely
string query = "INSERT INTO person (name) VALUES (@name)";
var command = new SQLiteCommand(query, connection);
command.Parameters.AddWithValue("@name", "Iron Developer");
command.ExecuteNonQuery();
// SQL command with a parameter to insert data safely
string query = "INSERT INTO person (name) VALUES (@name)";
var command = new SQLiteCommand(query, connection);
command.Parameters.AddWithValue("@name", "Iron Developer");
command.ExecuteNonQuery();
' SQL command with a parameter to insert data safely
Dim query As String = "INSERT INTO person (name) VALUES (@name)"
Dim command = New SQLiteCommand(query, connection)
command.Parameters.AddWithValue("@name", "Iron Developer")
command.ExecuteNonQuery()
$vbLabelText   $csharpLabel

Recuperação de dados

Declaração de seleção

Para recuperar dados da tabela do banco de dados, utilize uma instrução SELECT.

// SQL command to select all rows from the "person" table
string query = "SELECT * FROM person";

var command = new SQLiteCommand(query, connection);
var reader = command.ExecuteReader();

// Loop through the result set and read data
while (reader.Read())
{
    Console.WriteLine(reader["name"]);
}
// SQL command to select all rows from the "person" table
string query = "SELECT * FROM person";

var command = new SQLiteCommand(query, connection);
var reader = command.ExecuteReader();

// Loop through the result set and read data
while (reader.Read())
{
    Console.WriteLine(reader["name"]);
}
' SQL command to select all rows from the "person" table
Dim query As String = "SELECT * FROM person"

Dim command = New SQLiteCommand(query, connection)
Dim reader = command.ExecuteReader()

' Loop through the result set and read data
Do While reader.Read()
	Console.WriteLine(reader("name"))
Loop
$vbLabelText   $csharpLabel

Recursos avançados

Transações SQLite

As transações permitem executar múltiplas operações em uma única ação atômica. Veja como usar transações:

var transaction = connection.BeginTransaction();
try
{
    // Example of multiple operations in a transaction
    var insertCommand = new SQLiteCommand("INSERT INTO person (name) VALUES ('Alice')", connection, transaction);
    insertCommand.ExecuteNonQuery();

    var updateCommand = new SQLiteCommand("UPDATE person SET name = 'Bob' WHERE name = 'Alice'", connection, transaction);
    updateCommand.ExecuteNonQuery();

    transaction.Commit(); // Commit the transaction if all operations succeed
}
catch
{
    transaction.Rollback(); // Rollback the transaction if any operation fails
}
var transaction = connection.BeginTransaction();
try
{
    // Example of multiple operations in a transaction
    var insertCommand = new SQLiteCommand("INSERT INTO person (name) VALUES ('Alice')", connection, transaction);
    insertCommand.ExecuteNonQuery();

    var updateCommand = new SQLiteCommand("UPDATE person SET name = 'Bob' WHERE name = 'Alice'", connection, transaction);
    updateCommand.ExecuteNonQuery();

    transaction.Commit(); // Commit the transaction if all operations succeed
}
catch
{
    transaction.Rollback(); // Rollback the transaction if any operation fails
}
Dim transaction = connection.BeginTransaction()
Try
	' Example of multiple operations in a transaction
	Dim insertCommand = New SQLiteCommand("INSERT INTO person (name) VALUES ('Alice')", connection, transaction)
	insertCommand.ExecuteNonQuery()

	Dim updateCommand = New SQLiteCommand("UPDATE person SET name = 'Bob' WHERE name = 'Alice'", connection, transaction)
	updateCommand.ExecuteNonQuery()

	transaction.Commit() ' Commit the transaction if all operations succeed
Catch
	transaction.Rollback() ' Rollback the transaction if any operation fails
End Try
$vbLabelText   $csharpLabel

Mapeamento Objeto-Relacional (ORM) com Entity Framework

O Entity Framework (EF) é uma ferramenta ORM amplamente utilizada no ecossistema .NET . Simplifica a programação de bancos de dados, permitindo que os desenvolvedores trabalhem com dados relacionais usando objetos específicos do domínio. Veja como você pode usar o Entity Framework com o SQLite.

1. Instalando o Entity Framework

Primeiro, certifique-se de ter instalado o pacote NuGet do Entity Framework específico para SQLite:

  1. Abra o Gerenciador de Pacotes NuGet no Visual Studio.
  2. Procure por "Entity Framework SQLite" e instale-o.

2. Criando Classes de Entidade

As classes de entidade são representações de tabelas de banco de dados. Você pode criar uma classe para cada tabela com a qual pretende interagir.

public class Person
{
    public int Id { get; set; } // Primary Key
    public string Name { get; set; }
}
public class Person
{
    public int Id { get; set; } // Primary Key
    public string Name { get; set; }
}
Public Class Person
	Public Property Id() As Integer ' -  Primary Key
	Public Property Name() As String
End Class
$vbLabelText   $csharpLabel

3. Contexto do banco de dados

Você precisará criar uma classe que herde de DbContext. Esta classe representa a sessão com o banco de dados e permite consultar e salvar instâncias das entidades.

using Microsoft.EntityFrameworkCore;

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

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlite("Data Source=mydatabase.db;");
    }
}
using Microsoft.EntityFrameworkCore;

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

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlite("Data Source=mydatabase.db;");
    }
}
Imports Microsoft.EntityFrameworkCore

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
$vbLabelText   $csharpLabel

4. Operações CRUD

O Entity Framework simplifica as operações de Criação, Leitura, Atualização e Exclusão (CRUD). Veja como você pode inserir um novo 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
$vbLabelText   $csharpLabel

Ler, atualizar e excluir registros também são tarefas simplificadas e diretas com o Entity Framework, permitindo um código conciso e de fácil manutenção.

Trabalhando com arquivos XML e outros fornecedores de dados

O SQLite não se limita a dados relacionais; Também oferece flexibilidade no tratamento de outros tipos de dados, incluindo arquivos XML.

1. Armazenando dados XML

Você pode armazenar dados XML em um banco de dados SQLite. Isso pode ser útil se você trabalha com dados de configuração ou outras estruturas hierá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()
$vbLabelText   $csharpLabel

Recuperando dados XML

Você pode recuperar e trabalhar com dados XML usando técnicas padrão de análise XML em C#.

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

string xmlData;

// Read the XML data from the query result
if (reader.Read())
{
    xmlData = reader["data"].ToString();
}

// Parse the XML data as needed using an XML parser
string query = "SELECT data FROM xmltable WHERE id = 1";
var command = new SQLiteCommand(query, connection);
var reader = command.ExecuteReader();

string xmlData;

// Read the XML data from the query result
if (reader.Read())
{
    xmlData = reader["data"].ToString();
}

// Parse the XML data as needed using an XML parser
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

' Read the XML data from the query result
If reader.Read() Then
	xmlData = reader("data").ToString()
End If

' Parse the XML data as needed using an XML parser
$vbLabelText   $csharpLabel

Trabalhando com outros fornecedores de dados

O SQLite também se integra bem com diversos provedores de dados, permitindo interoperabilidade e flexibilidade. Isso significa que você pode alternar facilmente entre diferentes bancos de dados ou até mesmo combinar diferentes fontes de dados em um único aplicativo.

Apresentando a Iron Suit: Um Poderoso Conjunto de Bibliotecas

Após explorar os domínios do SQLite e dos operadores lógicos em C#, é hora de apresentar uma coleção notável de ferramentas que complementam e aprimoram a experiência de desenvolvimento no ambiente .NET . O Iron Suit é uma coleção de bibliotecas poderosas que inclui IronPDF, IronXL, IronOCR e IronBarcode, cada uma com finalidades distintas.

IronPDF: Biblioteca PDF em C

O Guia Abrangente do IronPDF é uma biblioteca completa projetada para criar, ler e manipular arquivos PDF em C#. Seja para gerar relatórios, faturas ou qualquer outro documento em formato PDF, o IronPDF tem a solução ideal para você. Uma característica única do IronPDF é a capacidade de converter HTML em PDF. Você pode renderizar HTML como um documento PDF, incluindo CSS, JavaScript e imagens, o que o torna uma ferramenta poderosa. Confira este tutorial sobre como converter HTML em PDF com o IronPDF para obter um guia passo a passo.

O principal destaque do IronPDF é seu recurso de conversão de HTML para PDF , que preserva todos os layouts e estilos. Ele gera PDFs a partir de conteúdo da web, ideal para relatórios, faturas e documentação. Você pode converter arquivos HTML, URLs e strings HTML em PDFs sem problemas.

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");
    }
}
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");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

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

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

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

O IronPDF pode ser uma ferramenta essencial ao trabalhar com bancos de dados SQLite. Você pode gerar relatórios em PDF a partir dos dados do seu banco de dados SQLite, permitindo uma apresentação e compartilhamento de dados simplificados.

IronXL: Gerenciamento de arquivos do Excel facilitado

Explore o IronXL para integração com o Excel , que permite aos desenvolvedores ler, escrever e manipular arquivos do Excel sem esforço. É compatível com XLS, XLSX e outros formatos, tornando-se uma ferramenta ideal para lidar com dados de planilhas. Você pode ler arquivos do Excel, manipulá-los e até mesmo criar novos arquivos do zero. A funcionalidade do IronXL integra-se bem com o gerenciamento de banco de dados, incluindo o SQLite, para exportação e importação de dados.

IronOCR: Reconhecimento Óptico de Caracteres em C

Com o IronOCR para reconhecimento de texto , digitalizar textos de imagens e arquivos PDF é muito fácil. É uma biblioteca OCR (Reconhecimento Óptico de Caracteres) versátil que reconhece textos de diversas fontes.

Imagine armazenar documentos digitalizados em um banco de dados SQLite e usar o IronOCR para recuperar e reconhecer o texto contido nesses documentos. As possibilidades são infinitas, proporcionando funcionalidades poderosas de recuperação e busca de texto.

IronBarcode: A Biblioteca Definitiva para Geração e Leitura de Códigos de Barras

A geração e leitura de códigos de barras são simplificadas com a poderosa integração de códigos de barras via IronBarcode . Ele suporta múltiplos formatos de código de barras e fornece uma API robusta para todas as necessidades relacionadas a códigos de barras. O IronBarcode pode desempenhar um papel essencial em aplicações que utilizam SQLite, onde os códigos de barras podem representar produtos ou outras entidades de dados. Armazenar e recuperar códigos de barras do banco de dados SQLite aumenta a integridade dos dados e facilita o acesso rápido.

Conclusão

O SQLite é um mecanismo de banco de dados poderoso e leve, ideal tanto para iniciantes quanto para profissionais. Desde a criação de tabelas e inserção de linhas até o gerenciamento de transações e a prevenção de ataques de injeção de SQL, o SQLite oferece muitos recursos. Seja para criar um aplicativo de console ou para dispositivos móveis, ou para trabalhar com chaves estrangeiras e conjuntos de dados, o SQLite é uma excelente escolha.

O Iron Suit, composto por IronPDF, IronXL, IronOCR e IronBarcode, é um conjunto de ferramentas valiosas que ampliam as capacidades dos seus projetos de desenvolvimento em C#, seja você trabalhando com bancos de dados SQLite ou qualquer outro domínio.

O que é ainda mais atraente é que cada um desses produtos oferece um período de teste gratuito para os produtos Iron Software , dando-lhe tempo suficiente para explorar e compreender a vasta gama de funcionalidades que eles oferecem. Depois de decidir continuar com essas ferramentas, o licenciamento começa a partir de $799 por produto. Você também pode comprar o pacote completo da Iron Suit pelo preço de apenas dois produtos individuais.

Perguntas frequentes

Como posso configurar o SQLite em um projeto C# usando o NuGet?

Para configurar o SQLite em um projeto C# usando o NuGet, abra o Visual Studio e crie um novo Aplicativo de Console. Acesse o Gerenciador de Pacotes NuGet, pesquise por 'SQLite' e instale o pacote. Isso integrará as bibliotecas do SQLite ao seu projeto para operações de banco de dados.

Quais são os benefícios de usar o SQLite para aplicações C#?

O SQLite é um mecanismo de banco de dados leve e sem servidor que armazena dados em um único arquivo, tornando-o ideal para aplicações que precisam de uma solução de banco de dados simples e eficiente, sem a complexidade de um sistema de banco de dados tradicional.

Como faço para me conectar a um banco de dados SQLite em C#?

Em C#, você pode se conectar a um banco de dados SQLite criando uma string de conexão como Data Source=mydatabase.db; e usando a classe ` SQLiteConnection do namespace ` System.Data.SQLite para estabelecer e abrir uma conexão.

Como posso realizar operações CRUD em um banco de dados SQLite usando C#?

Utilizando comandos SQL como INSERT , SELECT , UPDATE e DELETE , você pode realizar operações CRUD em um banco de dados SQLite em C#. Esses comandos podem ser executados usando um objeto SQLiteCommand .

Qual o papel das transações no SQLite?

As transações no SQLite permitem executar múltiplas operações como uma única ação atômica. Você pode iniciar uma transação usando connection.BeginTransaction() , realizar as operações necessárias e, em seguida, confirmar ou reverter a transação com base no resultado.

Como posso usar o Entity Framework com o SQLite em um projeto C#?

Para usar o Entity Framework com o SQLite, instale o pacote Entity Framework necessário via NuGet, defina suas classes de entidade e crie uma classe DbContext . Essa configuração permite o mapeamento objeto-relacional, simplificando as interações com o banco de dados em seu projeto C#.

Como posso gerar documentos PDF a partir de dados de banco de dados usando C#?

Com o IronPDF, você pode gerar documentos PDF a partir de dados de banco de dados em C#, convertendo HTML em PDF. Isso permite criar relatórios em PDF bem formatados a partir dos dados armazenados em seu banco de dados SQLite.

Que ferramentas podem aprimorar o desenvolvimento em C# para aplicações de banco de dados?

O pacote Iron Suit, que inclui ferramentas como IronPDF, IronXL, IronOCR e IronBarcode, aprimora o desenvolvimento em C# para aplicações de banco de dados, fornecendo funcionalidades como criação de PDFs, manipulação de arquivos Excel, reconhecimento de texto e geração de códigos de barras.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim