gpt4 book ai didi

c# - Odbc 连接字符串导致登录失败

转载 作者:太空宇宙 更新时间:2023-11-03 21:46:01 27 4
gpt4 key购买 nike

您好,我一整天都在尝试使用 ODBC 连接到我的本地 sql-server 数据库,但我似乎遗漏了一些东西,因为每次我尝试连接时都会收到此错误:

ERROR [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Cannot open database "Library.mdf" requested by the login. The login failed.

ERROR [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Cannot open database "Library.mdf" requested by the login. The login failed.

这是我的源代码:

 private string connectionString;

public LibraryRepository()
{
connectionString = @"Driver={SQL Server};Server=(local);Trusted_Connection=Yes;Database=Library.mdf;";
}

public IEnumerable<Book> GetPersonDetails()
{
using (var conn = new OdbcConnection(connectionString))
{
conn.Open();
using (var command = new OdbcCommand("SELECT * FROM Books" , conn))
{
var reader = command.ExecuteReader();
while (reader.Read())
{
yield return new Book()
{
Id = (int) reader["Id"],
Name = (string)reader["Name"],
Author = (string)reader["Author"],
Description = (string)reader["Description"],
Price = (string)reader["Price"],
CategoryId = (string)reader["CategoryId"]
};
}
}
}
}

当我在连接字符串处查看数据库的属性时,我不确定连接字符串是否正常,我看到了这一行:

Data Source=(local);Initial Catalog=Library;Integrated Security=True

但是如果我将这一行添加为连接字符串,我会得到这个错误:

ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

为了验证数据源是否正常,我使用(本地)服务器名称登录到 SSMS,它可以正常工作,我还可以在那里看到我的数据库。

在阅读有关此问题的博客后,我还将 NT AUTHORITY\NETWORK SERVICE 设置为 db_owner,但我仍然收到错误无法通过登录打开数据库“Library.mdf”请求。

我不太确定下一步该怎么做才能解决这个问题。有人可以提供一些建议吗?

最佳答案

连接字符串错误。您应该写数据库的名称,而不是可能包含许多数据库的文件 MDF 的名称

connectionString = @"Driver={SQL Server};Server=local);" + 
"Trusted_Connection=Yes;Database=??????;";

当您使用 SSMS 打开数据库时,您应该展开数据库节点并查看您的数据库是如何调用的,然后用该名称替换问号

关于c# - Odbc 连接字符串导致登录失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17001193/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com