0

我正在尝试使用 SQL Server Native Client 驱动程序连接到 SQL Server LocalDB 实例。这是因为我们希望在生产环境中使用 Native Client 来访问在 SQL Server 的 SSL 加密上使用主题备用名称。到目前为止,我运气不佳-这是受支持的情况吗?我的连接字符串是:

<add name="Database" connectionString="Driver={SQL Server Native Client};Server=(localdb)\v11.0;Integrated Security=True;AttachDBFileName=|DataDirectory|Database.mdf;" providerName="System.Data.Odbc" />

我收到的错误是:

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

关于如何连接的任何想法?

4

3 回答 3

1

除了使用 11.0 提供程序之外,

  • 您是否创建了 SqlLocalDb 的实例?
  • 您是否启动了实例?
  • 如果您不是所有者,您是否尝试过(localdb)\.\InstanceName

我最近在以下 Wiki 页面上更新了一堆内容:

http://social.technet.microsoft.com/wiki/contents/articles/4609.troubleshoot-sql-server-2012-express-localdb.aspx

此外,您的连接字符串同时说明本机客户端和 ODBC,这是故意的吗?您是否故意使用 AttachDbFilename ?

于 2012-04-25T00:13:06.793 回答
0

您需要使用支持 LocalDB 的 Native Client 版本。您使用的是版本 9。尝试:

Driver={SQL Server Native Client 11.0}

微软很久以前就提出了这一点:

请注意,由于激活逻辑存在于客户端提供程序中,因此您需要安装最新的 SQL Server Native Client“Denali”(用于 ODBC 和 OLE DB)或下一个 .NET Framework(用于 ADO.NET)。

于 2012-04-25T00:05:31.410 回答
0

跟随我经过 3 天的努力研究和尝试后如何解决这个问题,并祝愿节日快乐,新年快乐:

  1. 在左侧脚手架的 SQL Server 配置管理器 (SQLServerManager11.msc) 上:右键单击 MS SQL Server Native Client(在我的情况下为 11.0)的“客户端协议”并在右侧列表中,右键单击 TCP/IP 以禁用它,只允许启用“内存共享”(如排名 #1)和“命名管道'(作为排名顺序#2);湾。退出MSSQL SNC脚手架,右键单击“别名”并在右侧列表中将其完全排除为空白;C。您可以为脚手架的 MS SQL SNC(32 位)选项重复“a”和“b”

原因:作为 SQL Server LocalDb 同一台机器上的单个本地客户端,不需要通过 TCP/IP 端口连接,是内存共享或命名管道更有效的选项

  1. 在 SQL 客户端管理器 (cliconfg.exe) 上选择“常规”选项卡后,将“按顺序启用协议”列表保持在无人看管的右侧,完全空白并标记“启用内存共享协议”语句;然后选择“别名”选项卡,使“服务器别名配置”列表也完全空白

原因:同'1',现在配置客户端

  1. 现在小菜一碟:通过连接到您的 localdb\instance - 通常是 (localdb)\v11.0 - 启动 MS SQL SNC - 当 SQL Server Management Studio (SSms.exe) 需要时启动并附加到所需的数据库或通过 Visual Studio 制作此附件 b。启动 ODBC 管理器 (odbcad32.exe),选择“用户数据源”选项卡,单击“添加”,在弹出窗口中输入数据库名称(通用,稍后提及)、数据库描述 (id.)、“localdb\instance”服务器名称,单击“下一步”,再次单击“下一步”,现在标记“将标准数据库更改为”并在列表中选择连接并附加在“a”上的所需数据库,单击“下一步”,单击“结束”;然后在新的弹出窗口中单击“测试数据源”以查看它是否成功;完成了
于 2015-01-02T16:08:41.627 回答