2017-06-04 9 views
0

MicrosoftのWingtipToysを使用してASP.NETサンプルアプリケーションを使用します。接続文字列ASP.NET WebFormsのLocalDB Visual Studio

LocalDBを使用します。

接続文字列の違いはどちらですか?

<add name="DefaultConnection" connectionString="Data Source=(LocalDB)\V11.0;Initial Catalog=aspnet-WingtipToys;Integrated Security=True" providerName="System.Data.SqlClient" />

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-WingtipToys-20131223105750.mdf;Initial Catalog=aspnet-WingtipToys-20131223105750;Integrated Security=True" providerName="System.Data.SqlClient" />

私はV11.0 \ データソース=(LocalDB)を使用して、エラーの接続を取得し、初期カタログ= ASPNET-WingtipToys;統合セキュリティは= Trueの

sqlocaldb。 exeコマンド:

C:\Users\Espinete>sqllocaldb.exe v 
Microsoft SQL Server 2012 (11.0.3156.0) 
Microsoft SQL Server 2014 (12.0.2000.8) 
Microsoft SQL Server 2016 Release Candidate 0 (RC0) (13.0.1100.286) 

C:\Users\Espinete>sqllocaldb.exe i 
MSSQLLocalDB 
Projects 
ProjectsV13 
v11.0 

答えて

0
プロジェクト作成時など

aspnet-[project name]-yyyyMMddHHmmss.mdf 

ユニークな番号の接尾辞が表すデータベースの作成日時&タイムスタンプほぼ同時に:まず、LocalDB接続文字列通常、この形式で一意の番号サフィックスを使用して命名規則データベースファイルを持っています。

デフォルトでは、SQL Serverインスタンスで定義されていないLocalDBデータベースファイルを作成する場合、web.configの接続文字列にはAttachDBFileNameの設定が使用されます。 Common Connection String Settingsで説明したように設定Initial Catalog & AttachDBFileNameの違いはあります:

AttachDbFileName

この設定が定義されていないSQL Server ExpressのかLocalDBデータベースのデータベース・ファイルのパスと名前を指定しますローカルの SQL Server Expressインスタンス。この設定は、通常、App_Dataフォルダに保存されているデータベースファイルに使用されます。

初期カタログ

は、この設定は、SQL Serverのインスタンス カタログ内のデータベースの名前を指定します。 LocalDB接続文字列では、Visual StudioのWebプロジェクトテンプレートによって、ファイル名と初期カタログ設定の両方に一意の番号が接尾辞として追加されます。これは、SQL Server Express LocalDBインスタンスでデータベース名の衝突を回避するためです。

LocalDBは、インスタンスにどのデータベースファイルを添付するべきかわからないため、最初の接続文字列は確実に機能しません。 AttachDBFileName設定なしでInitial Catalogを使用するには、作成したLocalDBデータベースをSQL Serverインスタンス(SSMSまたはsqlcmdコマンドラインユーティリティを使用してDBカタログを作成する)に接続する必要があります。第一及び第二の接続文字列との間

差要約:

  1. Initial CatalogAttachDBFileName =無し> SQL Serverのインスタンスのカタログに定義され、既に取り付けられたデータベースの名前を使用して接続しようとしています。 AttachDBFileName =>手動& LocalDBインスタンスにアタッチされたデータベースのファイル名にInitial CatalogセットでApp_Dataディレクトリ内のデータベースのMDFファイルを使用して接続添付しようとしていると
  2. Initial Catalog

NB:sqllocaldb.exe vコマンドリストは、すべての(SqlLocalDB.exe docsに詳細)sqllocaldb.exe iリストは、既存のすべてのLocalDBインスタンスを共有し、あなたのマシンにLocalDBバージョンをインストールしました。

さらに参照:

SqlConnection.ConnectionString Property(MSDN)

関連する問題