为什么我尝试访问数据库文件 (.mdf) 时出现网络错误?
Why do i get network error when i tried to access a database file(.mdf)?
我使用了以下简单的 LINQ2SQL 查询来访问硬盘上的 .mdf 数据库文件并显示某些行
class Program
{
static void Main(string[] args)
{
string str = @"D:\SE\MS\LINQ\LinqInAction\Data\NORTHWND.mdf";
DataContext db = new DataContext(str);
Table<Contact> contacts = db.GetTable<Contact>();
var x = from y in contacts
select y;
foreach (var item in x)
{
Console.WriteLine(item.Name);
}
}
}
[Table(Name = "Contacts")]
class Contact
{
[Column(IsPrimaryKey = true)]
public int ContactID { get; set; }
[Column(Name = "ContactName")]
public string Name { get; set; }
[Column]
public string City { get; set; }
}
但它给了我以下错误
错误信息是
建立与 SQL 服务器的连接时出现与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确并且 SQL 服务器配置为允许远程连接。 (提供商:SQL 网络接口,错误:26 - 定位 Server/Instance 指定错误)
我该如何解决这个问题?
您为new DataContext(str);
传入的字符串应该是连接字符串配置的名称或实际的连接字符串。你可以试试这个:
string str = @"Server=.\SQLExpress;AttachDbFilename=D:\SE\MS\LINQ\LinqInAction\Data\NORTHWND.mdf;Database=NORTHWND;
Trusted_Connection=Yes;";
DataContext db = new DataContext(str);
或者您可以在 app.config:
中声明此连接字符串
<configuration>
<connectionStrings>
<add name="nwDb" connectionString="Server=.\SQLExpress;AttachDbFilename=D:\SE\MS\LINQ\LinqInAction\Data\NORTHWND.mdf;Database=NORTHWND;Trusted_Connection=Yes;"/>
</connectionStrings>
</configuration>
并在您的代码中使用它:
DataContext db = new DataContext("nwDb");
我使用了以下简单的 LINQ2SQL 查询来访问硬盘上的 .mdf 数据库文件并显示某些行
class Program
{
static void Main(string[] args)
{
string str = @"D:\SE\MS\LINQ\LinqInAction\Data\NORTHWND.mdf";
DataContext db = new DataContext(str);
Table<Contact> contacts = db.GetTable<Contact>();
var x = from y in contacts
select y;
foreach (var item in x)
{
Console.WriteLine(item.Name);
}
}
}
[Table(Name = "Contacts")]
class Contact
{
[Column(IsPrimaryKey = true)]
public int ContactID { get; set; }
[Column(Name = "ContactName")]
public string Name { get; set; }
[Column]
public string City { get; set; }
}
但它给了我以下错误
错误信息是
建立与 SQL 服务器的连接时出现与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确并且 SQL 服务器配置为允许远程连接。 (提供商:SQL 网络接口,错误:26 - 定位 Server/Instance 指定错误)
我该如何解决这个问题?
您为new DataContext(str);
传入的字符串应该是连接字符串配置的名称或实际的连接字符串。你可以试试这个:
string str = @"Server=.\SQLExpress;AttachDbFilename=D:\SE\MS\LINQ\LinqInAction\Data\NORTHWND.mdf;Database=NORTHWND;
Trusted_Connection=Yes;";
DataContext db = new DataContext(str);
或者您可以在 app.config:
中声明此连接字符串<configuration>
<connectionStrings>
<add name="nwDb" connectionString="Server=.\SQLExpress;AttachDbFilename=D:\SE\MS\LINQ\LinqInAction\Data\NORTHWND.mdf;Database=NORTHWND;Trusted_Connection=Yes;"/>
</connectionStrings>
</configuration>
并在您的代码中使用它:
DataContext db = new DataContext("nwDb");