使用環境 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);
}
}


コメント