2013-03-08 20 views
92

C#アプリケーションコード内で、1つ以上のSQLiteデータベースを作成してからやり取りしたいと思います。SQLiteデータベースとテーブルの作成

新しいSQLiteデータベースファイルを初期化して読み書きするための好ましい方法は何ですか?

データベースを作成した後、DDL文を実行してテーブルを作成する方法はありますか?

答えて

192

次のリンクをクリックすると素晴らしいチュートリアルが表示され、多くの助けになりました。

How to SQLITE in C#

私はほとんど自分のC#アプリケーションのためのSQLiteデータベースを作成するために、その記事のすべてを使用。

SQLite.dllをダウンロードして、プロジェクトへの参照として追加することを忘れないでください。 NuGetを使用して、dllを手動で追加することでこれを行うことができます。

あなたが参照を追加した後、あなたのクラスの上に次の行を使用してコードからDLLを参照してくださいは:

using System.Data.SQLite;

あなたがdllファイルはここに見つけることができます:

SQLite DLL's

ここでNuGetの方法を見つけることができます:

NuGet

次は作成スクリプトです。あなたがC#で作成したスクリプトを作成した後、私はあなたが、それがより安全であるロールバック・トランザクションを追加したいかもしれないと思う

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(); 

と、データがコミットされますので、それは、失敗からデータベースを維持します: は、データベース・ファイルを作成します最後の1つの大きな部分では、データベースへのアトミック操作としてではなく、小さな部分ではなく、たとえば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(); 
} 
+4

ニース明確な答え。 +1しました次の例は、SQLiteがレコードの挿入と検索にどのくらいの時間を要するかを示しています:http://www.technical-recipes.com/2016/using-sqlite-in-c-net-environments/ – AndyUK

関連する問題