166

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

新しいSQLiteデータベースファイルを初期化し、読み取りと書き込みのために開くにはどうすればよいですか?

データベースの作成に続いて、テーブルを作成するためにDDLステートメントを実行するにはどうすればよいですか?

4

1 に答える 1

317

次のリンクは、私を大いに助けてくれた素晴らしいチュートリアルにあなたを連れて行くでしょう!

C#でSQLITEを実行する方法

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

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

参照を追加した後、クラスの先頭にある次の行を使用して、コードからdllを参照します。

using System.Data.SQLite;

あなたはここでdllを見つけることができます:

SQLiteDLLの

ここで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#で作成スクリプトを作成した後、ロールバックトランザクションを追加することをお勧めします。これは、データが最後に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();
 }
于 2013-03-08T11:29:59.410 に答える