【问题标题】:Trying to connect to simple mdf file尝试连接到简单的 mdf 文件
【发布时间】:2015-03-03 16:15:12
【问题描述】:

我正在尝试使用 Essential Linq,但在连接到提供的 .mdf 文件时遇到了问题。

我已将文件保存在C:\DATA\NORTHWND.MDF。我正在使用 Visual Studio 2013

代码如下所示:

using System;
using System.Data.Linq;
using System.Data.Linq.Mapping;
using System.Linq;
using System.IO;

namespace LinqToSqlWithoutDesigner
{
    [Table(Name="Customers")]
    class Customer
    {
        [Column]
        public string CustomerID;
        [Column]
        public string City;
    }

    class Program
    {
        static void Main(string[] args)
        {
            DataContext db = new DataContext(@"C:\DATA\NORTHWND.MDF");

            var query = from c in db.GetTable<Customer>()
                    where c.City == "London"
                    select new { CustId = c.CustomerID, City = c.City };

            foreach(var cust in query)
            {
                Console.WriteLine(cust);
            }
        }
    }
}

我也试过用:

string connectionString = @"Data Source=.\SQLEXPRESS;
                      AttachDbFilename=c:\data\northwind.mdf;
                      Integrated Security=True;
                      Connect Timeout=30;
                      User Instance=True";
DataContext db = new DataContext(connectionString); 

但我总是得到错误:

未处理的异常:System.Data.SqlClient.SqlException:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)

【问题讨论】:

    标签: c# sql-server linq


    【解决方案1】:

    您的计算机上似乎没有 SQL Server Express,或者请求的网络接口协议未激活。

    对于.mdf 文件,您需要启动并运行 SQL Server

    【讨论】:

    • 我的理解是,当这样做时,它只是动态地创建一个 sql server express 实例。我可以在服务器资源管理器中打开文件
    • no这个理解是不正确的...你要安装sqlexpress
    • @Dalupus 如果你只有 .mdf 文件,你不能用它做任何事情
    • @swe。你怎么看
    • sql server express 与 Visual Studio 捆绑在一起我认为?我可以在 Visual Studio 的服务器资源管理器中很好地连接到数据库
    【解决方案2】:

    您的连接字符串中不存在目录名称

    添加到连接字符串:

    catalog=yourDbName
    

    注意:您不能直接连接到 MDF 文件。

    如果您的数据库服务器中不存在该数据库,您需要使用 .mdf 文件和 .ldf 文件。

    然后使用您的连接字符串并添加我提到的目录名称

    【讨论】:

      【解决方案3】:

      好的,这是允许我连接到 MDF 文件的字符串

      DataContext db = new DataContext(@"Data Source=(localdb)\v11.0;
                                         Integrated Security=true;
                                         AttachDbFileName=C:\DATA\NORTHWND.MDF");
      

      有关 LocalDB 的更多信息,请访问: http://blogs.msdn.com/b/sqlexpress/archive/2011/07/12/introducing-localdb-a-better-sql-express.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多