我是 ASP.NET 新手,我正在尝试实现 ASP.NET Core MVC 项目。
我尝试创建数据库连接,但当项目尝试使用选项访问数据库时出现错误:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\MSSQLLocalDB;Database=DevShop;Trusted_Connection=True;MultipleActiveResultSets=true"
}
}
结果我得到了错误
Cannot open database “DevShop” requested by the login. The login failed. Login failed for user 'DESKTOP-4S2H73J\Valeryi'
我在那里找到了解决方案:Cannot open database "test" requested by the login. The login failed. Login failed for user 'xyz\ASPNET'
并将连接字符串更改为:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\MSSQLLocalDB;Database=DevShop;User ID=DESKTOP-4S2H73J;pwd=top$secret"
}
}
在这种情况下,我收到错误:
SqlException: A connection was successfully established with the server, but then an error occurred during the login process
然后我再次修改了字符串:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\MSSQLLocalDB;Database=DevShop;User ID=DESKTOP-4S2H73J;pwd=top$secret;Trusted_Connection=True"
}
}
现在我收到错误
SqlException: Cannot open database "DevShop" requested by the login. The login failed. Login failed for user 'DESKTOP-4S2H73J\Valeryi'.
我完全困惑了......
- 如何在 Visual Studio 中正确创建与 SQL Server 的连接?
- 对于 ASP.NET Core MVC,我可以使用 MySql 服务器而不是 SQL Server 吗?
最佳答案
让我们澄清一下这部分,不知何故你无法访问数据库引擎。
SQL Server支持两种身份验证模式:
- Windows 身份验证
- SQL Server 身份验证
首先,您尝试使用 Windows 身份验证,然后使用 SQL Server 身份验证。
在连接字符串中 Trusted_Connection=True
或 Integrated Security=true
表示连接将使用 Windows 身份验证。因此,如果有这两个参数之一,则无需指定用户和密码。
要检查您的服务器名称,请通过 SQL Server Management Studio 连接到 SQL 引擎,然后执行以下查询:
SELECT @@SERVERNAME
结果,我得到了 DESKTOP-29GJ2IJ
因为这是本地计算机,并且没有命名实例,例如 DESKTOP-29GJ2IJ\MSSQLSERVER2017
我可以使用name localhost
在连接字符串中,但让我们使用查询结果中的值。
一旦我知道服务器的确切名称,我就可以编写连接字符串:
Server=DESKTOP-29GJ2IJ;Database=DevShop;Trusted_Connection=True;
连接字符串的有用页面是 https://www.connectionstrings.com/sql-server/
您可以连接到其他数据库,因此它不仅仅与MSSQL Server
有关。
关于sql-server - 如何在 Visual Studio 中创建与 SQL Server 的连接?获取 SqlException : Login failed for user,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65313736/