0

当程序试图打开数据库时,我得到:

错误消息:无法打开登录请求的数据库“Chinatowndb”。登录失败。用户“Lee-VAIO\Lee”登录失败。

代码用于连接字符串:

conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=Chinatowndb;Integrated Security=True;User Instance=True");

如果我将代码更改为:

conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=Chinatowndb;Integrated Security=True");

有用。现在我有另一个程序,它使用第一个连接字符串,不同的数据库,它可以工作。请注意,另一个程序具有带有 App_Data 文件夹的 .mdf 文件。Chinatowndb.mdf 存储在 C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA。

为什么会出错?

4

3 回答 3

0

如果您这样做,第一个将起作用

Go to Query Window in SQL Server Management Studio and type this:

exec sp_configure 'user instances enabled', 1. 
Go
Reconfigure

另请阅读以下内容

在本地 SQL Server Express 实例上使用用户实例

用户实例功能在连接期间动态创建一个新的 SQL Server 实例。这仅适用于本地 SQL Server 实例,并且仅适用于通过本地命名管道使用 Windows 身份验证进行连接时。目的是能够为在计算机上具有有限管理权限的用户创建完全权限的 SQL Server 实例。

Data Source=.\SQLExpress;Integrated Security=true; AttachDbFilename=|DataDirectory|\mydb.mdf;User Instance=true;

要使用用户实例功能,您需要在 SQL Server 上启用它。这是通过执行以下命令来完成的:sp_configure 'user instances enabled', '1'。要禁用该功能,请执行 sp_configure 'user instances enabled', '0'。

于 2012-08-24T13:01:29.020 回答
0

对于 mdf 数据库,您必须更改字符串连接格式,它不一样

Server=.\SQLExpress;AttachDbFilename=c:\mydbfile.mdf;Database=dbname; Trusted_Connection=Yes;

Or 

Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; 

数据库=dbname;Trusted_Connection=Yes;

关联 :

于 2012-08-24T12:56:31.687 回答
0

就我而言,我database.mdf从项目中排除了文件,删除了AttachDatabase:database.mdffrom 连接字符串并设置了user instance=false.

对我来说工作得很好。能够从数据库中获取数据。

于 2017-11-20T12:06:12.847 回答