嗨,我整天都在尝试使用 ODBC 连接到我的本地 sql-server 数据库,但我似乎遗漏了一些东西,因为每次我尝试连接时都会收到此错误:
错误 [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]无法打开登录请求的数据库“Library.mdf”。登录失败。
错误 [42000] [Microsoft][ODBC SQL Server Driver][SQL Server]无法打开登录请求的数据库“Library.mdf”。登录失败。
这是我的源代码:
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"]
};
}
}
}
}
当我在连接字符串中查看数据库的属性时,我不确定连接字符串是否正常,我看到了这一行:
数据源=(本地);初始目录=库;集成安全性=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”请求。
我不确定下一步该怎么做才能解决这个问题。有人可以提供一些建议吗?