回答:
次のリンクは素晴らしいチュートリアルにあなたを導くでしょう、それは私を大いに助けました!
その記事のほとんどすべてを使用して、自分のC#アプリケーション用のSQLiteデータベースを作成しました。
SQLite.dllをダウンロードして、プロジェクトへの参照として追加することを忘れないでください。これは、NuGetを使用して、dllを手動で追加することで実行できます。
参照を追加したら、クラスの先頭で次の行を使用して、コードからdllを参照します。
using System.Data.SQLite;
DLLは次の場所にあります。
ここで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();
}
System.Transactions.TransactionScope
予想通り、それはすべての実行されます動作しないExecuteNonQuery
よう、すべて一緒にすぐにではありませんSQLiteTransaction
。なぜ使用TransactionScope
?
SQLiteTransaction tr = m_dbConnection.BeginTransaction(); SQLiteCommand command = new SQLiteCommand(...); command.Transaction = tr;
使用するよりも優先TransactionScope