728x90

SQLite DB를 생성하는 걸 연습해봤다.

SQLite 는 Data Type 이 MySQL 과는 다른 것 같아서 DB Type 부터 익혀야 할 것 같다.

SQLite DB는 PC에 설치하는 파일 DB 라서 파일명을 정해줘야 한다.

파일의 확장자는 sqlite 라고 하기도 하는데 편의상 dat 라고 정했다.

구글링으로 찾은 소스를 내가 사용하는 포멧 형태로 변경하고 파일 검사 루틴을 추가했다.

DB를 만들었는데 또 생성을 할 경우를 대비해서 try catch 문도 추가했으며,

테이블 생성시 테이블이 기존에 생성되어 있으면 생성하지 않도록 하는 CREATE TABLE IF NOT EXISTS 를 추가했다.

테이블을 이런식으로 만들지 않아서 그런지 참 생소하다.

빌드를 할 때 주의할 사항이 있다.

대상 플랫폼을 AnyCPU 로 설정했더니 에러가 발생했다.

 "여기에 종속되어 있는 파일이나 어셈블리 중 하나를 로드할 수 없습니다. 프로그램을 잘못된 형식으로 로드하려고 했습니다" 라는 에러 메시지가 팝업된다.

원인은 System.Data.SQLite 을 32비트 용으로 받았기 때문에 명확하게 32비트 환경에서 동작하도록 지정을 해줘야 한다.


==================== DB 생성 소스코드 =====================

using System.Data.SQLite;

private void sqliteDBCreate_Click(object sender, EventArgs e)
{
    string DbFile = "MyDatabase.dat";
    string ConnectionString = string.Format("Data Source={0};Version=3;", DbFile);
    try
    {
        if (!System.IO.File.Exists(DbFile))
        {
            SQLiteConnection.CreateFile(DbFile);  // SQLite DB 생성
        }
        else  // 기능 동작 여부 확인을 위해서 추가했지만 불필요
        {
            MessageBox.Show("DB 생성되어 있습니다");
            return;
        }


        // 테이블 생성 코드
        SQLiteConnection sqliteConn = new SQLiteConnection(ConnectionString);
        sqliteConn.Open();

        string strsql = "CREATE TABLE IF NOT EXISTS scores (name varchar(20), score int)";

        SQLiteCommand cmd = new SQLiteCommand(strsql, sqliteConn);
        cmd.ExecuteNonQuery();
        sqliteConn.Close();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
        return;
    }
}


DB 의테이블을 조회(select), 추가(insert), 수정(update), 삭제(delete) 만 하고 테이블 생성은 SQL Expert Professional 을 가지고 해볼 생각이다.

일단 DB 구조부터 파악해야 하므로 처음부터 배운다는건 너무 어려울 거 같아서 찾아보니 http://www.sqlabs.com/sqliteconverter.php 가 있다. MySQL, Oracle 의 DB를 자동으로 변환해주는 툴이다.


직접 테스트를 해보니까 리눅스 서버에 있는 데이터베이스 접속해서 테이블 구조변환을 순식간에 한다.

이제 SQL Expert 를 이용하여 DB 을 열어서 내부 구조를 파악해 봐야겠다.

블로그 이미지

Link2Me

,