개발 ide : Visual Studio 2022
프로젝트 템플릿 : Windows Forms 앱
Windows 앱을 만들면서 간단한 데이터 저장을 하려고 한다. mdb는 64비트 앱에서 문제가 있어 sqlite를 사용하려 한다.
NuGet 관리자로 Microsoft.Data.Sqlite.Core 패키지와 SQLitePCLRaw.bundle_e_sqlite3 패키지를 설치한다.
using (var connection = new SqliteConnection("Data Source=hello.db"))
{
connection.Open();
var command = connection.CreateCommand();
command.CommandText = "SELECT name FROM sqlite_master WHERE name = 'user'";
var name = command.ExecuteScalar();
if (name == null || name.ToString() != "user")
{
command = connection.CreateCommand();
command.CommandText = "CREATE TABLE user (id INT, name VARCHAR(20))";
command.ExecuteNonQuery();
command = connection.CreateCommand();
command.CommandText = @"INSERT INTO user VALUES ($id, $name)";
command.Parameters.AddWithValue("$id", "1");
command.Parameters.AddWithValue("$name", "세종대왕");
command.ExecuteNonQuery();
}
command = connection.CreateCommand();
command.CommandText = @"INSERT INTO user VALUES ($id, $name)";
command.Parameters.AddWithValue("$id", "2");
command.Parameters.AddWithValue("$name", "홍길동");
command.ExecuteNonQuery();
command = connection.CreateCommand();
command.CommandText = @"UPDATE user SET name = $name WHERE id = $id";
command.Parameters.AddWithValue("$id", "2");
command.Parameters.AddWithValue("$name", "이순신");
command.ExecuteNonQuery();
command = connection.CreateCommand();
command.CommandText =
@"
SELECT name
FROM user
WHERE id = $id
";
command.Parameters.AddWithValue("$id", "2");
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
var name2 = reader.GetString(0);
tb_name.Text = name2;
}
}
command = connection.CreateCommand();
command.CommandText = @"DELETE FROM user WHERE ID=$id";
command.Parameters.AddWithValue("$id", "2");
command.ExecuteNonQuery();
connection.Close();
}
Sqlite를 연결하고 테이블 생성, 테이블 CRUD 소스를 실행한다.
DBeaver로 프로젝트 출력 폴더에 생성된 hello.db를 SQLite 연결로 열고, user 테이블을 확인하면 초기에 입력한 세종대왕 데이터가 보인다.
예제 소스
'프로그래밍 > C#' 카테고리의 다른 글
[Visual Studio 2022] 내가 사용하는 단축키 (0) | 2024.04.05 |
---|---|
[C#] exe를 관리자 권한으로 실행하기 세팅 (0) | 2023.12.22 |
[C#] Setup Project (Visual Studio 2022) (0) | 2023.11.21 |
[WPF] waml 파일 정렬 세팅 (1) | 2023.11.20 |