当程序试图打开数据库时,我得到:
错误消息:无法打开登录请求的数据库“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。
为什么会出错?
答案 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
。
对我来说很好。能够从数据库中获取数据。