Sql server 从Visual Studio中的SQL Server Express数据库获取数据库名称
我当前正在使用此连接字符串连接到我在Visual Studio中创建的数据库:Sql server 从Visual Studio中的SQL Server Express数据库获取数据库名称,sql-server,sql-server-2008,entity-framework,iis-7.5,sql-server-express,Sql Server,Sql Server 2008,Entity Framework,Iis 7.5,Sql Server Express,我当前正在使用此连接字符串连接到我在Visual Studio中创建的数据库: Data Source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|Database1.mdf;User Instance=true 我正在尝试使用IIS托管站点,这样我就可以处理响应头了,但我得到了下面描述的问题: 我试图找到要指定的数据库名称,但没有任何运气。我尝试了Initial Catalog=Database1
Data Source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|Database1.mdf;User Instance=true
我正在尝试使用IIS托管站点,这样我就可以处理响应头了,但我得到了下面描述的问题:
我试图找到要指定的数据库名称,但没有任何运气。我尝试了Initial Catalog=Database1
,但出现了以下错误:
无法创建文件“D:\docs\Visual Studio”
2010\Projects\QuickHomePage\QuickHomePage\App\u Data\Database1.mdf'
因为它已经存在了。更改文件路径或文件名,然后
请重试该操作。创建数据库失败。列出了一些文件名 无法创建。检查相关错误 我只是想连接到
数据库1.mdf
。为什么它会在尝试创建时出错?一条评论建议将.mdf文件附加到另一个数据库实例,以查看其中的内容
这是否需要运行SQLServerManagementStudio?每次尝试连接到服务器类型的数据库引擎和本地计算机时,都会出现连接错误。数据库名称是将.MDF文件附加到SQL Server(Express)服务器实例时提供的名称。MDF中没有需要发现的固定数据库名称-服务器上数据库的名称完全取决于您自己 因此,如果您像这样附加
数据库1.mdf
:
CREATE DATABASE CrazyDatabase ON
( FILENAME = N’C:\Data\Database1.mdf’ ),
( FILENAME = N’C:\Data\Database1_Log.ldf’ )
FOR ATTACH
然后,您的数据库名称是CrazyDatabase
——但它与原始MDF的文件名或其中的任何内容没有任何联系——您也可以将其称为任何其他名称——无论您选择什么
在这种情况下,您的新连接字符串将是:
Server=.\SQLEXPRESS;Database=CrazyDatabase;Integrated Security=SSPI;
所以同时指定.mdf文件和数据库是没有意义的?在将其附加到“真实”实例的过程中,我指定了一个数据库名称?这是否意味着如果我想通过IIS托管,就不能将.mdf文件与EF一起使用?@RandomEngy:yes-“AttachDbFileName=”仅用于您自己的开发机器上的开发目的;一旦投入生产,您将数据库放到一个真正的SQL Server上,并将其连接,从那时起,您只会使用您定义的数据库名称—文件名变得完全不相关。您不应该在连接字符串中同时定义这两者!谢谢你把事情弄清楚。我现在把一切都准备好了,运转得很好。