使用環境 Visual Studio2010 / C#での説明となります。
SQLite.dllをダウンロードする
SQLiteをDBとして使用するには、まず、SQLite.dllをダウロードします。
ここでは、「Precompiled Binaries for 32-bit Windows (.NET Framework 4.0)」の「sqlite-netFx40-binary-Win32-2010-1.0.105.1.zip」をダウロードします。各PC環境によって変更してください。
「sqlite-netFx40-binary-Win32-2010-1.0.105.1.zip」フォルダ内より、「System.Data.SQLite.dll」を取り出し任意のフォルダに保存します。
Visual Studioでアプリケーションを開き、「参照設定」より「参照の追加」をクリックし、先ほど保存した「System.Data.SQLite.dll」を選択し、参照設定に追加します。
アプリケーションのbin>Debugフォルダ内に対象のプラットフォームのフォルダを作成します。「x64」または「x86」のいずれかでプラットフォームターゲットがAny CPUの場合は、両方のフォルダを作成します。
ZIPフォルダ内の「SQLite.Interop.dll」を取りだし、Debugフォルダ内に作成した「x64」または「x86」フォルダに保存します。
SQLite.Interop.dllをこの形で保存しておかないと、実行時「DLL ‘SQLite.Interop.dll’ を読み込めません:指定されたモジュールが見つかりません。」のエラーメッセージがでて実行できません。
データの読み書き
SQLiteClass.cs
using System; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SQLite; using System.Windows.Forms; class SQLiteClass { private SQLiteConnection con; //初期設定 public void InitializeSQLite() { //C:\Users\username\AppData\Roaming\SampleApplication1 にユーザ設定ファイルを保存する string appfol = System.IO.Path.Combine(Environment.GetFolderPath( Environment.SpecialFolder.ApplicationData), Application.ProductName); //アプリケーションフォルダを作成 if (System.IO.Directory.Exists(appfol) != true) { System.IO.Directory.CreateDirectory(appfol); } string dbfile = appfol + "\\" + "setting.sqlite3"; con = new SQLiteConnection("Data Source=" + dbfile); //DBオープン con.Open(); //テーブル作成 SQLiteCommand cmd = con.CreateCommand(); //テーブル作成 cmd.CommandText = "Create Table If Not Exists Setting (" + "Fld1 Text," + "Fld2 Text," + "Fld3 Integer," + "Fld4 Real)"; cmd.ExecuteNonQuery(); //DBクローズ con.Close(); } }
using System.Data.SQLite;をクラスの先頭に付け足しておきます。 アプリケーションのLoadイベントInitializeSQLiteメソッドを呼び出し、設定保存用フォルダ作成、DB作成、テーブル作成の初期設定を行います。 con.Open();というこの1文だけでDBファイルが存在していなければ、勝手に作成されます。存在していれば、DBをオープンします。 Create Table If Not Exists Settingのところで「If Not Exists テーブル名」というキーワードをつけることにより、もしテーブルが存在しなければテーブルを作成するということになります。
レコード保存
//基本設定保存 private static void InsertToBasicTable(DTConnection db,string fldName,string textValue) { SQLiteCommand cmd = DTConnection.dtCN.CreateCommand(); //既存設定削除 cmd.CommandText = "Delete from Setting where Name='" + fldName+"'"; cmd.ExecuteNonQuery(); cmd.CommandText = "Insert into Setting" + " (Name,TextValue) values ('" + fldName + "','" + textValue + "')"; try { cmd.ExecuteNonQuery(); } catch(Exception e) { Console.WriteLine(e.Message); } }
コメント