[[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)