728x90

어플을 만들면서 DB 를 어떤걸로 쓸지 고민하다가

가장 가벼운? SQLite 를 쓰기로 했습니다. 우선 이전 포스팅에도 있지만 (http://kjcoder.tistory.com/27)

Xamarin 홈페이지에 가면 예시가 잘나와 있습니다.

예시를 가지고 직접 코딩한 내용을 공유해 보고자 합니다.

 

1. 사전 준비

SQLite 를 사용하기 위해서 당연히 SQLite 관련 라이브러리를 추가해야합니다.

NuGet 패키지 관리로 들어가 아래 두항목을 설치합니다.

첫번째껀 SQLite 라이브러리 이며

두번쨰껀 SQLite 를 사용하기 편하게하는 라이브러리입니다.

참조에 아래처럼 라이브러리가 추가되었으면 됩니다.

 

2. Database 생성

DB Browser 이용하여 Database 를 만드는 방법도 있지만 어플을 배포할때 DB 파일을 같이 배포하기 번거롭습니다.

그래서 직접 어플실행시 Database 파일을 만들어야 합니다.

방식은 간단합니다. 특정경로의 파일명을 가지고 Create 하면됩니다.

string DBPath = System.IO.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments), "SMSConvey.db");

SqliteConnection.CreateFile(DBPath);

위처럼 하면 일단 Database 파일은 만들어 진것입니다.

당연히 있는데 또 만들면 에러가 발생되니 만들기 전 해당 파일이 존재하는지 확인하는건 필수입니다.

 

3. Table 생성

이제 테이블을 생성합니다. 테이블을 생성하기 위해선 테이블 구조체를 정의 해야합니다.

    public class DB_Group
    {
        [PrimaryKey, AutoIncrement]
        public int ID { get; set; }
        public string GroupName { get; set; }
     }

보시면 아시겠지만 ID 는 PK 로 지정되었으며 자동 증가 입니다.

PK 가 반드시 존재해야합니다.

var connection = new SQLiteConnection(DBPath);
{
    connection.CreateTable<DB_Group>();

위처럼 하면 테이블이 생성됩니다.

너무 간단해서 별로 할말이 없군요;

 

4. 데이터 편집

데이터 입력도 간단합니다. 정의한 구조에 값을 셋팅하고 처리하면됩니다.

DB_Group group = new DB_Group();

group.GroupName = "testGroup"; 

var connection = new SQLiteConnection(DBPath);
{

   // 추가합니다.
   db.Insert(group);

   // 수정합니다.
   db.Update(group);

   // 삭제합니다.
   db.Delete(group);


}

 

5. 데이터 가져오기

데이터가 저장되었으면 가져오기도 해야합니다.

가져오는건 키기준으로 가져오는게 기본이니 키 기준으로 가져와 보겠습니다.

int key = 1;

var connection = new SQLiteConnection(DBPath);
{

   var query = db.Table<DB_Group>();

   DB_Group oneData = query.Where(c => c.ID == key).FirstOrDefault(); // 단일값

   List<DB_Group> multiData = query.ToList(); // 여러값

}

위 내용은 가장 기본이고 가장 기초적인 내용입니다.

당연히 비동기로 동작할수 있도록 코딩도 가능합니다.

다음 포스트에서 비동기 동작을 알아보도록 하겠습니다.

 

728x90
Posted by kjun.kr
,