SQLite 데이터베이스 및 테이블 생성


150

C # 응용 프로그램 코드 내에서 하나 이상의 SQLite 데이터베이스를 만들고 상호 작용하고 싶습니다.

새로운 SQLite 데이터베이스 파일을 어떻게 초기화하고 읽고 쓰기 위해 열 수 있습니까?

데이터베이스 생성 후 DDL 문을 실행하여 테이블을 만들려면 어떻게해야합니까?

답변:


290

다음 링크는 훌륭한 튜토리얼을 제공하여 많은 도움이되었습니다!

C #에서 SQLITE하는 방법

필자는이 기사의 모든 것을 거의 사용하여 내 C # 응용 프로그램에 대한 SQLite 데이터베이스를 만들었습니다.

SQLite.dll을 다운로드하여 프로젝트에 대한 참조로 추가하십시오. NuGet을 사용 하고 dll을 수동으로 추가하면됩니다.

참조를 추가 한 후 클래스 맨 위에 다음 줄을 사용하여 코드에서 dll을 참조하십시오.

using System.Data.SQLite;

dll은 다음에서 찾을 수 있습니다.

SQLite DLL

NuGet 방법은 여기에서 찾을 수 있습니다 .

NuGet

다음은 작성 스크립트입니다. 데이터베이스 파일 작성 :

SQLiteConnection.CreateFile("MyDatabase.sqlite");

SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;");
m_dbConnection.Open();

string sql = "create table highscores (name varchar(20), score int)";

SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
command.ExecuteNonQuery();

sql = "insert into highscores (name, score) values ('Me', 9001)";

command = new SQLiteCommand(sql, m_dbConnection);
command.ExecuteNonQuery();

m_dbConnection.Close();

C #에서 create 스크립트를 만든 후에는 롤백 트랜잭션을 추가하고 싶을 것입니다. 더 안전하고 데이터베이스가 실패하지 않도록 할 것입니다. 예를 들어 10 번의 쿼리 중 5 번에서 실패 할 수 있습니다.

거래 사용 방법에 대한 예 :

 using (TransactionScope tran = new TransactionScope())
 {
     //Insert create script here.

     //Indicates that creating the SQLiteDatabase went succesfully, so the database can be committed.
     tran.Complete();
 }

5
좋은 대답입니다. +1했습니다. 다음은 SQLite가 얼마나 빠르게 레코드를 삽입하고 검색 할 수 있는지 보여주는 또 다른 예입니다. technical-recipes.com/2016/using-sqlite-in-c-net-environments
AndyUK

내 테스트에서 사용 System.Transactions.TransactionScope이 예상대로 작동하지 않으면 다음 ExecuteNonQuery과 같이 모든 것이 아니라 즉시 즉시 실행 됩니다 SQLiteTransaction. 왜 사용 TransactionScope합니까?
MrCalvin

1
내가 선호 SQLiteTransaction tr = m_dbConnection.BeginTransaction(); SQLiteCommand command = new SQLiteCommand(...); command.Transaction = tr;하여 이상TransactionScope
user643011을
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.