[[oktatas:programozás:csharp:dotnetcore|< .Net Core]]
====== .Net Core - SQLite ======
* **Szerző:** Sallai András
* Copyright (c) 2024, Sallai András
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]]
* Web: https://szit.hu
===== Névtér és osztályok =====
Névtér:
* Sqlite
A következő osztályokat használjuk:
* SqliteConnection - Kapcsolatobjektum létrehozása.
* SqliteCommand - adatbázis műveletek
* SqliteDataReader - adatok olvasása
* SqliteException - hibakezelés
===== Projekt létrehozása =====
Hozzunk létre egy konzolos projektet:
mkdir app01
cd app01
dotnet new console
===== Függőség telepítése =====
Telepítsük a projektbe a MySqlConnector csomagot:
dotnet add package Microsoft.Data.Sqlite
===== Állomány létrehozása =====
using Microsoft.Data.Sqlite;
var conn = new SqliteConnection ("Data Source=hello.db");
conn.Open();
===== Tábla létrehozása =====
using Microsoft.Data.Sqlite;
var conn = new SqliteConnection ("Data Source=hello.db");
conn.Open();
SqliteCommand cmd = conn.CreateCommand();
string sql = @"
create table sampletable(
col1 varchar(20),
col2 int
)
";
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
===== Adat beszúrása =====
var conn = new SqliteConnection ("Data Source=hello.db");
conn.Open();
SqliteCommand cmd = conn.CreateCommand();
string sql = @"
insert into sampletable
values
(@col1, @col2 )
";
cmd.CommandText = sql;
cmd.Parameters.AddWithValue("@col1", "egy");
cmd.Parameters.AddWithValue("@col2", 33);
cmd.Prepare();
cmd.ExecuteNonQuery();
===== Adatok olvasása =====
using Microsoft.Data.Sqlite;
var conn = new SqliteConnection ("Data Source=hello.db");
conn.Open();
SqliteCommand cmd = conn.CreateCommand();
string sql = "select * from sampletable";
cmd.CommandText = sql;
SqliteDataReader reader = cmd.ExecuteReader();
while(reader.Read()) {
Console.WriteLine($"{reader.GetString(0)} {reader.GetInt32(1)}");
}
===== Olvasás másként =====
using Microsoft.Data.Sqlite;
var conn = new SqliteConnection ("Data Source=hello.db");
conn.Open();
string sql = "select * from sampletable";
using var cmd = new SqliteCommand (sql, conn);
SqliteDataReader reader = cmd.ExecuteReader();
while(reader.Read()) {
Console.WriteLine($"{reader.GetString(0)} {reader.GetInt32(1)}");
}
Használhatunk több Write utasítást:
while(reader.Read()) {
Console.Write(reader.GetString(0));
Console.Write(" ");
Console.WriteLine(reader.GetInt32(1));
}
===== Hibakezelés =====
using Microsoft.Data.Sqlite;
var conn = new SqliteConnection ("Data Source=database.db");
try {
conn.Open();
Console.WriteLine("Ok");
} catch (SqliteException e) {
Console.Error.WriteLine("Hiba! A megnyitás sikertelen!");
Console.Error.WriteLine(e.Message);
}
===== Lásd még =====
Példa konzolos menüvel:
* https://github.com/oktat/emp_sqlite_csharp.git
===== Linkek =====
* https://learn.microsoft.com/en-us/dotnet/api/microsoft.data.sqlite?view=msdata-sqlite-7.0.0 (2024)
* https://learn.microsoft.com/en-us/dotnet/standard/data/sqlite/?tabs=netcore-cli (2024)
* https://zetcode.com/csharp/sqlite/ (2024)
* https://www.codeguru.com/dotnet/using-sqlite-in-a-c-application/ (2024)
* https://learn.microsoft.com/en-us/shows/on-net/how-do-i-use-csharp-and-dotnet-with-sqlite (2024)
* https://www.c-sharpcorner.com/article/how-to-use-sqlite-with-c-sharp/ (2024)
* https://marketsplash.com/tutorials/c-sharp/csharp-how-to-use-sqlite/ (2024)
* https://jasonwatmore.com/post/2022/09/05/net-6-connect-to-sqlite-database-with-entity-framework-core (2024)