ASP.NET WebForms Visual Studio中的连接字符串LocalDB

问题描述 投票:0回答:1

我使用Microsoft使用的ASP.NET示例应用程序:WingtipToys。

它使用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" />

我使用Data Source =(LocalDB)\ V11.0得到错误连接;初始目录= 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
asp.net visual-studio-2015 connection-string localdb
1个回答
1
投票

首先,LocalDB连接字符串通常具有数据库文件命名约定,使用此格式的唯一数字后缀:

aspnet-[project name]-yyyyMMddHHmmss.mdf

唯一编号后缀表示与项目创建时间几乎同时的数据库创建日期和时间戳。

默认情况下,在创建未在任何SQL Server实例中定义的LocalDB数据库文件时,web.config中的连接字符串使用AttachDBFileName设置。 AttachDBFileName中描述的Initial CatalogCommon Connection String Settings设置之间的区别在于:

AttachDbFileName

此设置指定未在本地SQL Server Express实例中定义的SQL Server Express或LocalDB数据库的数据库文件的路径和名称。此设置通常用于保存在App_Data文件夹中的数据库文件。

初始目录

此设置指定SQL Server实例目录中的数据库的名称。在LocalDB连接字符串中,Visual Studio Web项目模板将唯一编号作为后缀添加到文件名和初始目录设置中。这样做的原因是为了避免SQL Server Express LocalDB实例中的数据库名称冲突。

从上面的描述中,第一个连接字符串肯定不起作用,因为LocalDB不知道应该将哪个数据库文件附加到其实例中。要在没有Initial Catalog设置的情况下使用AttachDBFileName,您需要在SQL Server实例中附加创建的LocalDB数据库(使用SSMS或sqlcmd命令行实用程序来创建数据库目录)。

第一和第二连接字符串之间的差异摘要:

  1. qazxsw poi without qazxsw poi =>尝试使用SQL Server实例目录中定义的已附加数据库名称进行连接。
  2. Initial CatalogAttachDBFileName =>尝试手动连接并使用Initial Catalog目录中的数据库MDF文件进行连接,并在AttachDBFileName实例中将App_Data设置为附加数据库文件名。

注意:Initial Catalog命令列出了机器中所有已安装的LocalDB版本,其中LocalDB列出了所有共享的现有LocalDB实例(sqllocaldb.exe v中的更多信息)。

附加参考:

sqllocaldb.exe i(MSDN)

© www.soinside.com 2019 - 2024. All rights reserved.