エクスポート (0) 印刷
すべて展開

Windows Phone のローカル データベース接続文字列

2012/02/09

Windows Phone OS 7.1 では、アプリケーションで LINQ to SQL を使用してローカル データベースにリレーショナル データを格納することができます。このトピックでは、アプリケーションのローカル データベースで使用できるサポート対象の接続文字列パラメーターについて説明します。ローカル データベースの使用の詳細については、「Windows Phone のローカル データベースの概要」を参照してください。

データベースを作成する前に、接続文字列を使用してデータベースの構成値を指定することができます。たとえば、接続文字列を使用して、データベースの暗号化やパスワード保護の有無を指定することができます。

接続文字列では、個々のパラメーターをセミコロンで区切り、パラメーター値を単一引用符で囲みます。一部のパラメーターはデータベースの作成にのみ適用されます。データベースの作成後、これらのパラメーターは無視されます。

ローカル データベースの接続文字列としてサポートされているすべてのパラメーターを次の表に示します。

パラメーター

説明

data source または datasource

ローカル データベース ファイルのファイル パスと名前。これが指定された唯一の接続文字列プロパティである場合、このプロパティの値のみがデータ コンテキスト オブジェクトをインスタンス化するのに必要です。データ コンテキストの詳細については、「Windows Phone のローカル データベースの概要」を参照してください。

次のプレフィックスを使用して、パスのルートの場所を明示的に指定します。

  • isostore: パスは分離ストレージに適用されます

  • appdata: パスはインストール フォルダーに適用されます

プレフィックスを指定しない場合、ファイル パスは分離ストレージに適用されます。

Password または Pwd または database password または ssce:database password

データベースのパスワード。最大 40 文字までです。指定しない場合、既定値はパスワードなしです。データベースで暗号化を有効にする場合、このプロパティは必須です。パスワードを指定すると、データベースで暗号化が自動的に有効になります。空白のパスワードを指定した場合、データベースは暗号化されません。

注注:
作成済みのデータベースを暗号化することはできません。

データベースは AES-128 を使用して暗号化され、パスワードは SHA-256 を使用してハッシュされます。

データベース全体ではなく選択したデータを暗号化するには、「方法: Windows Phone アプリケーションでデータを暗号化する」を参照してください。

max buffer size または ssce:max buffer size

変更をディスクにフラッシュする前にローカル データベースで使用できるメモリの最大容量 (キロバイト単位)。指定しない場合、既定値は 384 です。最大値は 5120 です。

max database size または ssce:max database size

ローカル データベースの最大サイズ (メガバイト単位)。指定しない場合、既定値は 32 です。最大値は 512 です。

Mode または file mode または ssce:mode

データベース ファイルを開くときに使用するモード。次の値が使用できます。

  • Read Write: 複数のプロセスでデータベースを開いて変更することができます。モード プロパティを指定しない場合は、これが既定の設定になります。

  • Read Only: データベースの読み取り専用のコピーを開くことができます。

  • Exclusive: 他のプロセスがデータベースを開いたり変更したりすることはできません。

  • Shared Read: データベースを開いている間、他のプロセスはデータベースを読み取ることはできますが、変更することはできません。

Culture Identifier

データベースで使用するカルチャ コード。たとえば、英語 (米国) の場合 en-US。Windows Phone OS 7.1 でサポートされているカルチャ コードの詳細については、「Windows Phone のカルチャと言語のサポート」を参照してください。

注注:
既存のデータベースに接続するときにこのプロパティを使用すると、無視されます。

Case Sensitive または CaseSensitive

データベースの照合で大文字と小文字を区別するかどうかを決めるブール値。照合で大文字/小文字を区別する場合は true、区別しない場合は false に設定する必要があります。指定しない場合、既定値は false です。

注注:
既存のデータベースに接続するときにこのプロパティを使用すると、無視されます。
重要な注重要な注:

Microsoft SQL Compact の一部の接続文字列パラメーターは、このリリースの Windows Phone Application Platform で動作する可能性がありますこのトピックに記載されていない接続文字列パラメーターは使用しないことをお勧めします。

以下の例では、ローカル データベースで接続文字列を使用する方法を示します。

単一パラメーターの使用

データ ソース プロパティのみを使用する場合は、次の例に示すように、接続文字列にプロパティ名を含める必要はありません。

// Create the data context.
MyDataContext db = new MyDataContext ("isostore:/mydb.sdf")

この例で、isostore プレフィックスはファイルが分離ストレージにあることを示します。

インストール フォルダーからの読み取り

インストール フォルダーは、書き込み操作をサポートしていません。ここでローカル データベースに接続する場合、File Mode プロパティを使用して、読み取り専用として接続を指定する必要があります。インストール フォルダーへの読み取り専用接続を行う方法を、次の例に示します。

// Create the data context.
MyDataContext db = new MyDataContext("Data Source = 'appdata:/mydb.sdf'; File Mode = read only;");

暗号化データベースの作成

暗号化されたデータベースが必要な場合は、データベースを作成する前に、接続文字列を使用してパスワードを指定する必要があります。この例では、データベースを作成する前にパスワードを指定します。

// Create the data context.
MyDataContext db = new MyDataContext("Data Source='isostore:/mydb.sdf';Password='securepassword';");

// Create an encrypted database after confirming that it does not exist.
if (!db.DatabaseExists()) db.CreateDatabase();

データベース全体ではなく選択したデータを暗号化するには、「方法: Windows Phone アプリケーションでデータを暗号化する」を参照してください。

読み取り専用接続

次の例では、より大きなデータベースへの読み取り専用接続を行います。

// Create the data context.
MyDataContext db = new MyDataContext("Data Source = 'mydb.sdf'; File Mode = read only; Max Database Size = 256; Max Buffer Size = 1024;");

特定のカルチャを使用したデータベースの作成

この例では、ドイツ語のカルチャと大文字/小文字を区別する照合を用いてデータベースを作成します。

// Create the data context.
MyDataContext db = new MyDataContext("Data Source = 'mydb.sdf'; Culture Identifier = de-de; Case Sensitive = true;");

// Create a database after confirming that it does not exist.
if (!db.DatabaseExists()) db.CreateDatabase();

表示:
© 2014 Microsoft