接続文字列Connection strings

接続文字列は、データベースへの接続方法を指定するために使用されます。A connection string is used to specify how to connect to the database. Microsoft.Data.Sqlite の接続文字列は、セミコロンで区切られたキーワードと値のリストとして、標準の ADO.NET 構文に従っています。Connection strings in Microsoft.Data.Sqlite follow the standard ADO.NET syntax as a semicolon-separated list of keywords and values.

キーワードKeywords

Microsoft.Data.Sqlite では次の接続文字列キーワードを使用できます。The following connection string keywords can be used with Microsoft.Data.Sqlite:

データ ソースData source

データベース ファイルのパス。The path to the database file. DataSource (スペースなし) と Filename はこのキーワードの別名です。DataSource (without a space) and Filename are aliases of this keyword.

SQLite では、パスは現在の作業ディレクトリからの相対パスとして扱われます。SQLite treats paths relative to the current working directory. 絶対パスも指定できます。Absolute paths can also be specified.

の場合、一時的なディスク上のデータベースが作成されます。このデータベースは接続が閉じられるときに削除されます。If empty, SQLite creates a temporary on-disk database that's deleted when the connection is closed.

:memory: の場合、インメモリ データベースが使用されます。If :memory:, an in-memory database is used. 詳細については、「インメモリ データベース」を参照してください。For more information, see In-Memory databases.

|DataDirectory| 置換文字列で始まるパスは、相対パスと同じように扱われます。Paths that start with the |DataDirectory| substitution string are treated the same as relative paths. 設定すると、パスは DataDirectory アプリケーション ドメイン プロパティ値を基準とした相対パスになります。If set, paths are made relative to the DataDirectory application domain property value.

このキーワードでは、URI ファイル名もサポートされます。This keyword also supports URI Filenames.

モードMode

接続モード。The connection mode.

[値]Value 説明Description
ReadWriteCreateReadWriteCreate 読み取りと書き込みを行うデータベースを開きます。データベースが存在しない場合は作成します。Opens the database for reading and writing, and creates it if it doesn't exist. 既定値です。This is the default.
ReadWriteReadWrite 読み取りと書き込みを行うデータベースを開きます。Opens the database for reading and writing.
ReadOnlyReadOnly データベースを読み取り専用モードで開きます。Opens the database in read-only mode.
メモリMemory インメモリ データベースを開きます。Opens an in-memory database.

キャッシュCache

接続で使用されるキャッシュ モード。The caching mode used by the connection.

[値]Value 説明Description
DefaultDefault 基になる SQLite ライブラリの既定のモードを使用します。Uses the default mode of the underlying SQLite library. 既定値です。This is the default.
PrivatePrivate 各接続で、プライベート キャッシュを使用します。Each connection uses a private cache.
SharedShared 接続でキャッシュを共有します。Connections share a cache. このモードでは、トランザクションとテーブル ロックの動作が変更される場合があります。This mode can change the behavior of transaction and table locking.

パスワードPassword

暗号化キー。The encryption key. 指定した場合、接続を開いた直後に PRAGMA key が送信されます。When specified, PRAGMA key is sent immediately after opening the connection.

警告

暗号化がネイティブ SQLite ライブラリでサポートされていない場合、パスワードの効果はありません。Password has no effect when encryption isn't supported by the native SQLite library.

外部キーForeign Keys

外部キー制約を有効にするかどうかを示す値です。A value indicating whether to enable foreign key constraints.

[値]Value 説明Description
TrueTrue 接続を開いた直後に PRAGMA foreign_keys = 1 を送信します。Sends PRAGMA foreign_keys = 1 immediately after opening the connection.
FalseFalse 接続を開いた直後に PRAGMA foreign_keys = 0 を送信します。Sends PRAGMA foreign_keys = 0 immediately after opening the connection.
(空)(empty) PRAGMA foreign_keys を送信しません。Doesn't send PRAGMA foreign_keys. 既定値です。This is the default.

e_sqlite3 の場合のように、ネイティブ SQLite ライブラリをコンパイルするために SQLITE_DEFAULT_FOREIGN_KEYS が使用された場合は、外部キーを有効にする必要はありません。There's no need enable foreign keys if, like in e_sqlite3, SQLITE_DEFAULT_FOREIGN_KEYS was used to compile the native SQLite library.

再帰トリガーRecursive triggers

再帰トリガーを有効にするかどうかを示す値です。A value that indicates whether to enable recursive triggers.

[値]Value 説明Description
TrueTrue 接続を開いた直後に PRAGMA recursive_triggers を送信します。Sends PRAGMA recursive_triggers immediately after opening the connection.
FalseFalse PRAGMA recursive_triggers を送信しません。Doesn't send PRAGMA recursive_triggers. 既定値です。This is the default.

接続文字列ビルダーConnection string builder

SqliteConnectionStringBuilder は、厳密に型指定された方法で接続文字列を作成する際に使用できます。You can use SqliteConnectionStringBuilder as a strongly typed way of creating connection strings. 接続文字列のインジェクション攻撃を防止するためにも使用できます。It can also be used to prevent connection string injection attacks.

var connectionString = new SqliteConnectionStringBuilder(baseConnectionString)
{
    Mode = SqliteOpenMode.ReadWriteCreate,
    Password = password
}.ToString();

使用例Examples

BasicBasic

コンカレンシーを向上させるために共有キャッシュを使用する基本的な接続文字列。A basic connection string with a shared cache for improved concurrency.

Data Source=Application.db;Cache=Shared

EncryptedEncrypted

暗号化されたデータベース。An encrypted database.

Data Source=Encrypted.db;Password=MyEncryptionKey

読み取り専用Read-only

アプリによって変更できない読み取り専用のデータベース。A read-only database that cannot be modified by the app.

Data Source=Reference.db;Mode=ReadOnly

メモリ内In-memory

非公開のインメモリ データベース。A private, in-memory database.

Data Source=:memory:

共有可能なインメモリSharable in-memory

Sharable という名前で識別される、共有可能なインメモリ データベース。A sharable, in-memory database identified by the name Sharable.

Data Source=Sharable;Mode=Memory;Cache=Shared

関連項目See also