连接字符串中的用户实例会出错

时间:2012-08-24 12:53:59

标签: asp.net

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

错误消息:无法打开登录请求的数据库“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。

为什么会出错?

3 个答案:

答案 0 :(得分:0)

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

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

Or 

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

数据库= dbname;开发Trusted_Connection =是;

链接:

答案 1 :(得分:0)

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

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

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

另请阅读以下

Using an User Instance on a local SQL Server Express instance

用户实例功能在连接期间动态创建新的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'。

答案 2 :(得分:0)

就我而言,我从项目中排除了Contact Company ============================== Contact 1 Company 1 Contact 2 NULL Contact 3 NULL Contact 1 Company 1 NULL Company 2 NULL Company 3 文件,从连接字符串中删除了database.mdf并设置了AttachDatabase:database.mdf

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