【C#】SQLiteで内部データベースを構築する

C#

SQLiteとは

アプリケーションで利用するデータベースです。
アプリケーション側でデータを保持する方法は色々ありますが、大量のデータをアプリケーション側で保持したいという場合はSQLiteがおすすめです。
SQLでクエリを飛ばすことができるため、通常のデータベースとやり取りする感覚で利用できます。

入手方法

名称バージョン
入手場所Nuget
ライセンスパブリックドメイン

実装例

test.dbを作成し、hogeテーブルを構築します。

事前作業

Nugetからダウンロードしてプロジェクトにインポートする。

環境

名称バージョン
フレームワークWPF
.NetFrameworkv4.6
SQLite1.0.112.0

実装コード

・CSファイル

using System;
using System.Windows;
using System.Data.SQLite;

namespace TestApp
{
	public partial class MainWindow : Window
	{
		public MainWindow()
		{
			InitializeComponent();
		}
		
		public void button1_Click(object sender, RoutedEventArgs e)
		{
			VarCheck();
			
			try{
				using (var connection = new SQLiteConnection("DATA Source=test.db"))
				{
					connection.Open();
					using (SQLiteCommand command = connection.CreateCommand())
					{
						command.CommandText = "create table hoge(id INTEGER PRIMARY KEY AUTOINCREMENT, field1 TEXT, field2 REAL, field3 BLOB)";
						command.ExecuteNonQuery();
					}
					connection.Close();
				}
			}
			catch(Exception ex)
			{
				Console.WriteLine(ex.Message);
			}
		}

		public void VarCheck()
		{
			var sqlConnectionSb = new SQLiteConnectionStringBuilder { DataSource = ":memory:" };

			using (var cn = new SQLiteConnection(sqlConnectionSb.ToString()))
			{
				cn.Open();

				using (var cmd = new SQLiteCommand(cn))
				{
					cmd.CommandText = "select sqlite_version()";
					Console.WriteLine(cmd.ExecuteScalar());
				}
			}
		}
	}
}

・XAMLファイル


<Window x:Class="TestApp.MainWindow"
	xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
	Title="WPF1" Height="300" Width="300">
	<Grid>
		<Button
			Name="button1"
			Click="button1_Click"
			Height="30"
			Content="Click me!"/>
	</Grid>
</Window>

最後に

あくまで保持データが多い場合やSQLで管理したい場合に使うライブラリです。プログラムの軽量化を考えた場合、できるだけ外部ライブラリはインポートしないに越したことはないので、設定ファイルを保持するだけなら、iniやxmlで管理しましょう。

参考サイト