SQLiteデータベースとテーブルを作成する[終了]


150

C#アプリケーションコード内で、1つ以上の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#で作成スクリプトを作成した後、ロールバックトランザクションを追加することをお勧めします。これは安全であり、データベースへの障害を防ぎます。たとえば、10個のクエリの5分の1で失敗する可能性がある小さな断片ではなく、データベース。

トランザクションの使用例:

 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.