IRONSOFTWAREHOME
AKTUALNOŚCI DLA PROGRAMISTÓW

Sqlite C# .NET (jak to działa dla programistów)

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Jacob Mellor
Updated: 21 kwietnia 2026

SQLite to popularny, lekki i samowystarczalny silnik relacyjnej bazy danych, szeroko stosowany w różnych aplikacjach dostępu do danych i platformach środowiskowych. W kontekście programowania w środowisku .NET kod źródłowy SQLite stanowi doskonały wybór do zintegrowania niezawodnego rozwiązania bazodanowego z aplikacjami systemowymi. W tym artykułe zagłębimy się w świat transakcji SQLite, badając ich funkcje, zalety oraz sposoby efektywnego wykorzystania w projektach .NET.

Jak korzystać z SQLite w C#

  1. Pobierz bibliotekę SQLite
  2. Utwórz bazę danych i wprowadź dane
  3. Czytaj przy użyciu czytnika
  4. Korzystanie z SQLite przy użyciu Entity Framework i metody zapytań LINQ
  5. Generowanie raportu PDF za pomocą IronPDF

Czym jest SQLite?

SQLite to popularny silnik baz danych typu open source, który można osadzić w aplikacjach bez konieczności stosowania oddzielnego komponentu serwerowego. Jest szybki, niezawodny i działa na wielu platformach. SQLite może być używany w aplikacjach projektów .NET za pośrednictwem różnych bibliotek zapewniających interfejsy ADO.NET. Jedną z tych bibliotek jest Microsoft.Data.SQLite. Dzięki temu możesz używać SQLite jako źródła danych dla swoich aplikacji .NET, niezależnie od tego, czy są to aplikacje konsolowe, desktopowe, internetowe czy mobilne. Możesz również używać Entity Framework Core do mapowania obiektowo-relacyjnego i wysyłania zapytań do bazy danych SQLite za pomocą LINQ.

Ten artykul pokazuje, jak uzywac Microsoft.Data.Sqlite do rozwijania, laczenia i manipulowania baza danych SQLite w aplikacji konsolowej .NET. Dowiesz się, jak:

  • Zainstaluj pakiet NuGet Microsoft.Data.Sqlite
  • Utwórz połączenie SQLite i wykonaj polecenia SQL
  • Tworzenie i wypełnianie tabel przy użyciu czytników danych i parametrów
  • Pobieranie danych za pomocą czytników danych
  • Wdrożenie EntityFramework Core
  • Pobieranie danych za pomocą LINQ
  • Wygeneruj raport PDF

Instalacja biblioteki SQLite

Aby korzystać z Microsoft.Data.Sqlite, należy zainstalować pakiet NuGet zawierający bibliotekę i jej zależności. Można to zrobić za pomocą menedżera pakietów Visual Studio, interfejsu CLI .NET Core lub dowolnego innego narzędzia obsługującego NuGet. W tym artykułe użyjemy Menedżera pakietów do utworzenia aplikacji konsolowej i zainstalowania biblioteki Microsoft.Data.Sqlite. Aby to zrobić, otwórz konsolę Menedżera pakietów i uruchom następujące polecenia:

PM > Install-Package Microsoft.Data.Sqlite

Powyższe polecenie zainstaluje pakiet w sposób pokazany poniżej.

Tworzenie bazy danych SQLite

Aby pracowac z baza danych SQLite, nalezy utworzyc obiekt SqliteConnection, ktory reprezentuje polaczenie z plikiem bazy danych. Mozna okreslic nazwe pliku i inne opcje w ciagu polaczenia. Jeśli plik nie istnieje, zostanie utworzony automatycznie. Na przyklad, ponizszy program tworzy polaczenie z plikiem bazy danych o nazwie employee.db w biezacym katalogu:

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

Instrukcja using zapewnia, ze polaczenie jest zamkniete i zlikwidowane, gdy wyjdzie poza zakres. Aby wykonywac polecenia SQL, nalezy utworzyc obiekt SqlCommand i powiazac go z polaczeniem. Mozna ustawic wlasciwosc CommandText na instrukcje SQL, ktora chce sie wykonac, i opcjonalnie dodac parametry do kolekcji Parameters. Nastepnie mozna wywolac jedna z metod obiektu SqlCommand, aby wykonac polecenie, takich jak ExecuteNonQuery, ExecuteScalar lub ExecuteReader.

Utwórz tabelę w SQLite

Poniższy kod tworzy tabele o nazwie Employee, korzystajac z metody 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();
}

Wstaw dane do tabeli

Aby wstawic dane do tabeli, mozna uzyc tego samego obiektu SqlCommand i ustawic wlasciwosc CommandText na instrukcje INSERT. Na przykład poniższy kod wstawia trzy wiersze do tabeli 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();
}

Odczyt danych z SQLite

Aby odczytac dane z tabeli, mozna uzyc metody ExecuteReader obiektu SqlCommand i ustawic wlasciwosc CommandText na instrukcje SELECT. To zwroci obiekt SqliteDataReader, ktory pozwala iterowac po wierszach i uzyskiwac dostep do wartosci po nazwie kolumny lub indeksie. Mozna uzyc metody Read, aby przejsc do nastepnego wiersza, i metod GetXXX, aby uzyskac wartosci jako odpowiedni typ danych. Na przykład poniższy kod odczytuje wszystkie wiersze z tabeli Employee i wyświetla je w konsoli:

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

Wynik

Wynikiem działania tego kodu jest:

Sqlite C# .NET (Jak to działa dla programisty): Rysunek 1 - Wynik

Wyszukiwanie danych

Jeśli wolisz używać LINQ do wysyłania zapytań do bazy danych SQLite, możesz skorzystać z Entity Framework Core, aby zmapować tabele do klas i wykonywać zapytania przy użyciu wyrażeń LINQ. W tym celu należy zainstalować pakiet Microsoft.EntityFrameworkCore.Sqlite, który jest zależny od pakietu Microsoft.Data.Sqlite. Trzeba tez utworzyc klase, ktora dziedziczy po DbContext i reprezentuje kontekst bazy danych. Ta klasa musi mieć konstruktor, który przyjmuje parametr DbContextOptions i przekazuje go do konstruktora bazowego. Musi również posiadać właściwość DbSet dla każdej tabeli, którą chcesz odwzorować na klasę. Na przykład, poniższy kod definiuje klasę Stock i klasę 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; }
}

Aby utworzyć kontekst bazy danych, trzeba użyć klasy DbContextOptionsBuilder i określić ciąg połączenia oraz dostawcę bazy danych. Mozna rowniez uzyc metody Database.EnsureCreated, aby utworzyc baze danych i tabele, jezeli nie istnieja. Na przyklad, ponizszy kod tworzy kontekst bazy danych i baze:

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

Aby wstawic dane do bazy danych, mozna uzyc metod Add lub AddRange wlasciwosci DbSet i przekazac obiekty, ktore chce sie wstawic. Mozna rowniez uzyc metody SaveChanges, aby zatwierdzic zmiany do bazy danych. Na przykład poniższy kod wstawia trzy akcje do bazy danych:

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();
    }
}

Aby zapytac o dane, mozna uzyc metod LINQ lub wyrazen na wlasciwosci DbSet i zastosowac filtry, projekcje, agregacje i inne operacje. Zapytania zostaną przetłumaczone na instrukcje SQL i wykonane w bazie danych. Na przykład poniższy kod wyszukuje akcje, których cena jest niższa niż sześć dolarów, i PRINTuje ich nazwy:

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);
    }
}

Załóżmy, że mamy scenariusz, w którym musimy utworzyć plik PDF zawierający listę akcji. Możemy to łatwo osiągnąć, korzystając z IronPDF.

Przedstawiamy IronPDF

IronPDF to biblioteka, która pomaga tworzyć, edytować i odczytywać pliki PDF w aplikacjach .NET bez konieczności korzystania z wielu pakietów. Może generować pliki PDF z HTML, adresów URL, JavaScript, CSS i wielu formatów obrazów, a także dodawać nagłówki, stopki, podpisy, załączniki i hasła. Obsługuje również kompatybilność międzyplatformową, wielowątkowość i obsługę asynchroniczną.

Główną zaletą IronPDF jest funkcja konwersji HTML do PDF, która zachowuje wszystkie układy i style. Generuje pliki PDF na podstawie treści internetowych, co idealnie nadaje się do raportów, faktur i dokumentacji. Możesz płynnie konwertować pliki HTML, adresy URL i ciągi znaków HTML do formatu 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");
    }
}

Zainstaluj IronPDF

Aby zainstalować IronPDF w naszym projekcie, wpisz następujące polecenie w konsoli menedżera pakietów.

PM > Install-Package IronPdf

To polecenie zainstaluje IronPDF wraz ze wszystkimi jego zależnościami.

Dodaj klucz licencyjny

Aby korzystać z IronPDF, wymagany jest klucz licencyjny. Klucz licencji Trial można łatwo uzyskać na stronie licencji Trial IronPDF.

Dodaj ten kod do sekcji startup swojej aplikacji przed użyciem IronPDF. To podejście jest uniwersalne i proste, sprawdzające się zarówno w przypadku aplikacji .NET Core, jak i .NET Framework.

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

Utwórz plik PDF zawierający listę akcji

Ten kod w języku C# generuje raport w formacie PDF na podstawie danych giełdowych przechowywanych w bazie danych SQLite. Dynamicznie tworzy tabelę HTML, wypełnia ją informacjami o akcjach i wykorzystuje renderer PDF oparty na przeglądarce Chrome do konwersji tabeli na plik "stock.pdf" do pobrania, ułatwiając efektywne raportowanie i dystrybucję szczegółowych informacji o akcjach.

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");

Powyższy fragment kodu w języku C# służy do tworzenia tabeli HTML wyświetlającej informacje o akcjach z bazy danych SQLite, a następnie konwertowania jej do pliku PDF. Wykorzystuje bibliotekę Entity Framework Core do interakcji z bazą danych. Poczatkowo konfiguruje DbContextOptionsBuilder do uzywania SQLite z okreslonym ciagiem polaczenia. Następnie kod tworzy ciąg HTML z osadzonymi stylami CSS określającymi wygląd tabeli, tworzy strukturę tabeli z nagłówkami, wysyła zapytanie do bazy danych SQLite w celu uzyskania informacji o akcjach, wypełnia tabelę HTML pobranymi danymi, a na koniec wykorzystuje renderer PDF oparty na przeglądarce Chrome do konwersji treści HTML do pliku PDF o nazwie "stock.pdf". Powstały plik PDF będzie zawierał tabelę przedstawiającą symbole akcji, nazwy i ceny.

Wynik jest następujący:

Sqlite C# .NET (Jak to działa dla programisty): Rysunek 2 - Wynik tabeli zapasów

Wnioski

Podsumowując, wykorzystanie SQLite w .NET do zarządzania bazami danych stanowi lekkie i wszechstronne rozwiązanie. W tym artykułe omówiono integrację SQLite z aplikacjami .NET, przedstawiając jego kluczowe funkcje i zalety. Podany kod pokazuje praktyczne kroki tworzenia, łączenia i manipulowania bazą danych SQLite w aplikacji konsolowej .NET. Ponadto podkreślono wykorzystanie bibliotek Microsoft.Data.Sqlite i Entity Framework Core do wydajnej obsługi danych. Włączenie IronPDF pokazało, jak płynnie generować raporty PDF z bazy danych SQLite, zwiększając możliwości aplikacji w zakresie raportowania i dystrybucji danych.

IronPDF oferuje różne opcje licencyjne w zależności od liczby programistów, lokalizacji, projektów i potrzeb związanych z redystrybucją. Licencje są bezterminowe i obejmują rok bezpłatnego wsparcia technicznego oraz aktualizacji.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta