本地数据库失败并在VS2017中崩溃

时间:2018-07-02 10:13:56

标签: c# sql visual-studio-2017

我正在尝试在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

预先感谢

2 个答案:

答案 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权限。见

http://blog.sqlauthority.com/2009/08/20/sql-server-fix-error-cannot-open-database-requested-by-the-login-the-login-failed-login-failed-for-user-nt-authoritynetwork-service/

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希望对您有帮助