Blog Dla Programistów C#/.NET

sobota, 24 stycznia 2026

Wielu początkujących (ale i zaawansowanych) programistów .NET staje prędzej czy później przed pytaniem: jak przechowywać dane w mojej aplikacji? Często myślimy wtedy o potężnych systemach baz danych, jak SQL Server czy MySQL, które jednak wymagają osobnego serwera i skomplikowanej konfiguracji. Na szczęście istnieje SQLite, czyli lekka i samodzielna baza danych idealna dla mniejszych projektów i zastosowań lokalnych. W tym artykule przedstawię Ci, czym jest SQLite, jakie ma zalety oraz jak z niej skorzystać w aplikacji .NET na prostym przykładzie.

SQLite w .NET - Lekka Baza Danych, Duże Możliwości

Czym jest SQLite i kiedy warto z niej skorzystać?


SQLite to relacyjna baza danych typu embedded, czyli wbudowana w aplikację. Oznacza to, że nie wymaga instalowania osobnego serwera - cała baza danych jest przechowywana w pojedynczym pliku na dysku (lub nawet w pamięci) i dostępna bezpośrednio z poziomu aplikacji. Dzięki temu konfiguracja jest banalnie prosta: wystarczy dołączyć odpowiednią bibliotekę i wskazać plik bazy, a SQLite zajmie się resztą.

Kilka kluczowych zalet SQLite:
    
Zero konfiguracji: Brak osobnego procesu serwera i instalacji. Bazę SQLite uruchamiasz po prostu przez otwarcie pliku.
    
Lekkość i przenośność: Plik bazy (z rozszerzeniem .sqlite lub .db) możesz łatwo przenieść czy dołączyć do projektu. Sam silnik SQLite ma kilkaset kilobajtów, co czyni go idealnym do aplikacji desktopowych, mobilnych czy narzędzi CLI.
    
Standardowy SQL: SQLite obsługuje standardowe zapytania SQL (tworzenie tabel, wstawianie, zapytania SELECT itp.), więc jeśli znasz SQL, czujesz się jak w domu. Nie musisz uczyć się nowego języka zapytań.
    
Wydajność dla małych i średnich zastosowań: SQLite potrafi obsłużyć zaskakująco duże zbiory danych i spory ruch, jeśli używasz go w pojedynczej aplikacji. Dla większości aplikacji desktopowych czy mobilnych jego wydajność jest więcej niż wystarczająca.
    
Darmowy i open-source: Możesz używać SQLite bez opłat w swoich projektach, także komercyjnych.

Oczywiście, SQLite nie zastąpi w 100% potężnych serwerów SQL w zastosowaniach korporacyjnych czy webowych z setkami jednoczesnych użytkowników. Jednak w wielu scenariuszach - od prototypów, przez aplikacje mobilne, po niewielkie systemy - jest doskonałym wyborem ze względu na swoją prostotę.


Jak używać SQLite w .NET - pierwsze kroki


Skoro wiemy, co oferuje SQLite, zobaczmy, jak skorzystać z niej w praktyce w aplikacji .NET. Najpierw musimy zainstalować bibliotekę umożliwiającą .NET komunikację z bazą SQLite. W aktualnych projektach .NET najpopularniejszym wyborem jest pakiet Microsoft.Data.Sqlite (dostępny na NuGet). Alternatywnie można użyć System.Data.SQLite (oficjalny wrapper od twórców SQLite), jednak poniższy przykład będzie korzystać z pakietu od Microsoftu.

Załóżmy, że chcemy stworzyć prostą bazę danych SQLite o nazwie MojaBaza.db i zapisać w niej listę użytkowników. Poniższy kod w C# demonstruje podstawową obsługę SQLite:

using Microsoft.Data.Sqlite;

/* Ustawiamy connection string - tutaj baza danych to plik "MojaBaza.db" w bieżącym katalogu. */
using var connection = new SqliteConnection("Data Source=MojaBaza.db");
connection.Open();

/* Tworzymy tabelę Users z kolumnami Id i Name (jeśli już istnieje, to polecenie ją pominie). */
using var createTableCmd = connection.CreateCommand();
createTableCmd.CommandText =
@"CREATE TABLE IF NOT EXISTS Users (
Id INTEGER PRIMARY KEY,
Name TEXT
);";
createTableCmd.ExecuteNonQuery();

/* Dodajemy przykładowy rekord do tabeli Users. */
using var insertCmd = connection.CreateCommand();
insertCmd.CommandText = "INSERT INTO Users (Name) VALUES ('Alicja');";
insertCmd.ExecuteNonQuery();

/* Odczytujemy dane z tabeli Users. */
using var selectCmd = connection.CreateCommand();
selectCmd.CommandText = "SELECT Id, Name FROM Users;";
using var reader = selectCmd.ExecuteReader();
while (reader.Read())
{
int id = reader.GetInt32(0);
string name = reader.GetString(1);
Console.WriteLine($"Użytkownik: {id} - {name}");
}

Kilka słów wyjaśnienia do powyższego kodu:
    
• Najpierw tworzymy połączenie do bazy danych za pomocą connection stringa "Data Source=MojaBaza.db". Jeśli plik o tej nazwie nie istnieje, SQLite utworzy go automatycznie w momencie otwarcia połączenia (connection.Open()).
    
• Wykonujemy polecenie SQL CREATE TABLE IF NOT EXISTS, aby stworzyć tabelę o nazwie Users z kolumnami Id (klucz główny, automatyczne numerowanie) oraz Name (tekst).
    
• Następnie za pomocą polecenia INSERT dodajemy nowy wpis z imieniem "Alicja" do tabeli.
   
• Na końcu wykonujemy zapytanie SELECT, aby pobrać wszystkie rekordy z tabeli Users, po czym iterujemy przez wyniki za pomocą SqliteDataReader (odczytując kolumny po indeksach lub nazwach). W przykładzie wypisujemy dane na konsolę.

Jak widać, korzystanie z SQLite w .NET odbywa się poprzez znajome klasy ADO.NET: używamy Connection do otwarcia połączenia, Command do wykonania polecenia SQL oraz DataReader do odczytu wyników. Dzięki temu nauka obsługi SQLite jest prosta, zwłaszcza jeśli wcześniej korzystałeś z innych baz danych w C#.

Warto pamiętać o dobrych praktykach, takich jak parametryzowanie zapytań (zamiast wbudowywania wartości bezpośrednio w SQL, aby uniknąć ataków SQL Injection). Biblioteka Microsoft.Data.Sqlite umożliwia dodawanie parametrów przez command.Parameters.AddWithValue(...), podobnie jak w innych bazach.

Na marginesie dodam, że jeśli preferujesz podejście z ORM (np. Entity Framework Core), to SQLite również jest wspierane. Możesz z łatwością użyć SQLite jako bazy danych dla EF Core, co bywa przydatne np. w aplikacjach desktopowych lub testach jednostkowych. Wystarczy zainstalować odpowiedni pakiet (Microsoft.EntityFrameworkCore.Sqlite) i wskazać SQLite jako provider w konfiguracji kontekstu danych.


Podsumowanie


SQLite to świetne rozwiązanie dla programistów .NET potrzebujących prostej w obsłudze, lekkiej bazy danych do swoich projektów. Pozwala ona przechowywać dane bez nadmiernych komplikacji, bez serwerów, bez złożonej konfiguracji, a przy tym z wykorzystaniem znajomego języka SQL. W tym krótkim wprowadzeniu pokazałem Ci, jak zacząć pracę z SQLite w .NET oraz wykonać podstawowe operacje na bazie danych.

Jeśli dopiero zaczynasz swoją przygodę z programowaniem w .NET i chcesz nauczyć się więcej (nie tylko o bazach danych, ale o całym procesie tworzenia aplikacji od podstaw), zachęcam Cię do sprawdzenia mojego szkolenia online Zostań Programistą .NET. W tym szkoleniu pokazuję krok po kroku, jak w ciągu 15 tygodni przejść od zupełnych podstaw do poziomu junior developera. Być może SQLite i inne technologie .NET staną się wtedy dla Ciebie jeszcze bardziej zrozumiałe i przydatne w praktyce.

Autor artykułu:
Kazimierz Szpin
Kazimierz Szpin
CTO & Founder - FindSolution.pl
Programista C#/.NET. Specjalizuje się w Blazor, ASP.NET Core, ASP.NET MVC, ASP.NET Web API, WPF oraz Windows Forms.
Autor bloga ModestProgrammer.pl
Dodaj komentarz

Wyszukiwarka

© Copyright 2026 modestprogrammer.pl | Sztuczna Inteligencja | Regulamin | Polityka prywatności. Design by Kazimierz Szpin. Wszelkie prawa zastrzeżone.