我正在尝试在C#应用程序中设置本地数据库(基于服务的数据库)。最初将数据库添加到项目中时,可以在VS和SSMS中看到它并编辑表,但是当我尝试以编程方式连接到该数据库时,出现此错误:
"Cannot open database \"[DataDirectory]DATABASE.MDF\" requested by the login. The login failed.\r\nLogin failed for user 'DESKTOP-MM6AR72\\majbom'."
然后,数据库从VS和SSMS都消失了。 我是这样连接的:
using(SqlConnection conn = new SqlConnection("Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=[DataDirectory]DATABASE.MDF;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"))
{
using(SqlCommand cmd = new SqlCommand(SQL, conn))
{
cmd.Connection.Open();
}
}
我从未尝试过以这种方式使用数据库,所以也许我做错了什么。我要完成的工作是一种将大量AF数据临时存储在我的应用中并使之可搜索和可编辑的方法。
编辑: 我已遵循此指南:https://docs.microsoft.com/en-us/visualstudio/data-tools/create-a-sql-database-by-using-a-designer
预先感谢
答案 0 :(得分:0)
如果您设置Integrated Security = true,那么系统将尝试使用您当前的Windows凭据登录数据库。如果您尚未明确授予数据库中当前用户的权限,则此方法将无效。
如果将Integrated Security设置为false或根本没有Integrated Security选项,则需要提供用户名和密码。
Data Source=.\SQLEXPRESS;Database=Database1.mdf;User Id=myUsername;
Password=myPassword;
您关于您没有使用用户名或密码的声明没有任何意义。您必须在数据库上具有用户名和密码。
答案 1 :(得分:0)
1-用户没有db_owner权限。见
2-也许您未指定正确的连接字符串:
http://connectionstrings.com/sql-server-2005
3-您最近安装了SQL Server,并且未将SQL Server配置为使用SQL Server身份验证。实际上,您只能使用集成的Windows安全性。
http://www.codekicks.com/2008/11/cannot-open-database-northwind.html希望对您有帮助