データベースと接続/切断する
sqlite3 の場合
DbConnection conn = DbProviderFactories.GetFactory( "System.Data.SQLite" ).CreateConnection();
conn.ConnectionString = new SQLiteConnectionStringBuilder()
{
DataSource = "<sqliteのdbファイルの生成パスを記述>",
SyncMode = SynchronizationModes.Off,
JournalMode = SQLiteJournalModeEnum.Wal,
BusyTimeout = 3000
}
.ToString();
conn.Open();
sqlite3のデータベースを暗号化する場合
パスワードの設定は DbConnectin でなく SQLiteConnection を使って行う
SQLiteConnection conn = new SQLiteConnection();
conn.ConnectionString = new SQLiteConnectionStringBuilder()
{
DataSource = "<sqliteのdbファイルの生成パスを記述>",
Password = "<パスワード>",
SyncMode = SynchronizationModes.Off,
JournalMode = SQLiteJournalModeEnum.Wal,
BusyTimeout = 3000
}
.ToString();
conn.Open();
conn.ChangePassword( "<パスワード>" );
DbConnectionUtils.closeConnection( conn );
- 暗号化されたデータベースへの接続
DbConnection conn = DbProviderFactories.GetFactory( "System.Data.SQLite" ).CreateConnection(); conn.ConnectionString = new SQLiteConnectionStringBuilder() { DataSource = "<sqliteのdbファイルの生成パスを記述>", Password = "<パスワード>", SyncMode = SynchronizationModes.Off, JournalMode = SQLiteJournalModeEnum.Wal, BusyTimeout = 3000 } .ToString(); conn.Open();
mariadb の場合
DbConnection conn = DbProviderFactories.GetFactory( "System.Data.SQLite" ).CreateConnection();
conn.ConnectionString = new StringBuilder()
.Append( "Server=" ).Append( <hostアドレス> ).Append( ";" )
.Append( "Port=" ).Append( <port番号> ).Append( ";" )
.Append( "Database=" ).Append( <db名> ).Append( ";" )
.Append( "userid=" ).Append( <user> ).Append( ";" )
.Append( "password=" ).Append( <password> ).Append( ";" )
.ToString();
conn.Open();
- いづれもGetFactory()の引数は App.config で定義した invariant の文字列
切断
conn.Close();