12. SQLite Create, Read
01.
더보기
1.
02.
더보기
1.
2.
3.
public class Contact
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
}
03.
더보기
1.
2.
3.
// AddNewContactWindow 윈도우의 입력 TextBox 컨트롤에서 값을 가져와
// Contact 데이터 모델 객체의 필드에 각각 값을 할당한다.
Contact contact = new Contact()
{
// 모델에서 Id 필드는 [PrimaryKey, AutoIncrement] 이기 때문에
// 값을 지정하지 않아도, PK는 자동으로 AutoIncrement 된다.
// 그외 Name, Email, Phone 필드 프로퍼티에 값을 할당한다.
Name = nameTextBox.Text,
Email = emailTextBox.Text,
Phone = PhoneTextBox.Text
};
4.
// SQLite DB 파일 이름 지정
string databaseName = "Contacts.db";
// 내문서 경로 가져오는 방법
//string forderPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
// 현재 프로젝트 실행 경로 가져오는 방법 (프로젝트\bin\Debug\net8.0-windows)
//string forderPath = Environment.CurrentDirectory;
// 현재 프로젝트 경로 가져오기
string projectPath = "../../../";
// 생성될 DB 경로(현재 프로젝트 경로 + 파일이름) 지정
string databasePath = System.IO.Path.Combine(projectPath, databaseName);
5.
// 지정된 경로에 생성할 DB 연결 객체 생성
SQLiteConnection connection = new SQLiteConnection(databasePath);
// Contact 클래스 정의를 기반으로 SQLite DB Table 생성 (테이블이 없을 경우, 있으면 X)
connection.CreateTable<Contact>();
6.
// UI 컨트롤에 입력된 데이터를 Contact 객체 형태로, 생성한 SQLite DB Table에 삽입
connection.Insert(contact);
// DB 연결을 닫음 (임시 구현)
connection.Close();
7.
04.
더보기
1.
// 지정된 경로에 생성할 DB 연결 객체 생성
// using 문을 벗어나면, connection 객체가 자동 메모리 해제됨
using (SQLiteConnection connection = new SQLiteConnection(databasePath))
{
// Contact 클래스 정의를 기반으로 SQLite DB Table 생성 (테이블이 없을 경우, 있으면 X)
connection.CreateTable<Contact>();
// UI 컨트롤에 입력된 데이터를 Contact 객체 형태로, 생성한 SQLite DB Table에 삽입
connection.Insert(contact);
}
2.
using 문 범위를 벗어나면, 객체가 자동 제거됨.
3.
05.
더보기
1.
// SQLite DB 파일 이름 지정
static string databaseName = "Contacts.db";
// 현재 프로젝트 경로 가져오기
static string projectPath = "../../../";
// 생성될 DB 경로(현재 프로젝트 경로 + 파일이름) 지정
public static string databasePath = System.IO.Path.Combine(projectPath, databaseName);
06.
더보기
1.
using (SQLiteConnection connection = new SQLiteConnection(App.databasePath))
{
connection.CreateTable<Contact>();
var contact = connection.Table<Contact>().ToList();
}
3.
4.
07.