sql-server - 在 Visual Studio 中从 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 托管该网站,这样我就可以搞乱响应 header ,但我遇到了此处描述的问题:SQL Server Express connection string for Entity Framework Code First

我正在尝试查找要指定的数据库名称,但没有任何运气。我尝试了 Initial Catalog=Database1 但这给了我这个错误:

Cannot create file 'D:\docs\Visual Studio 2010\Projects\QuickHomePage\QuickHomePage\App_Data\Database1.mdf' because it already exists. Change the file path or the file name, and retry the operation.
CREATE DATABASE failed. Some file names listed could not be created. Check related errors.

我只是想附加到Database1.mdf。为什么尝试创建它时会出现错误?一条评论建议将 .mdf 文件附加到另一个数据库实例以查看其中的内容。

这需要运行 SQL Server Management studio 吗?每次我尝试连接到服务器类型数据库引擎和本地计算机时,都会出现连接错误。

最佳答案

数据库名称是您将 .MDF 文件附加到 SQL Server (Express) 服务器实例时为其指定的名称。您需要发现的 MDF“内部”没有固定的数据库名称 - 这完全取决于您在服务器上如何称呼数据库。

因此,如果您像这样附加 Database1.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;

关于sql-server - 在 Visual Studio 中从 SQL Server Express 数据库获取数据库名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7543711/

相关文章:

c# - Entity Framework 级联删除和延迟加载

c# - 我可以在 LINQ to Entities 查询中使用 CAST 吗?

c# - 将 varchar 值 '@a' 转换为数据类型 int 时转换失败

java - MS SQL Server 2008 的 JDBC 连接异常

SQL:查找列值匹配的行之间的差异

sql - 强制 LINQ to SQL 或 ENTITIES 发出 BETWEEN 运算符

sql-server - sys.dm_exec_query_stats 列描述?

sql - 如何聚合描述列?

sql-server - SQL 中的特殊字符

sql - 错误: Cannot fetch a row from OLE DB provider "ADsDSOObject" for linked server "ADSI"