我正在尝试使用 vb.net 通过命名管道从我的 Windows 应用程序连接到 SQL Server 2008。
我进行了一些浏览,发现要通过命名管道进行连接,我们只需提及“Initial Catalog = Test_DB; Data Source = np:Server_Name;integrated security=SSPI;”。
但这根本无法连接到服务器。这是使用命名管道连接到 sql serverver 的正确方法吗?
连接失败时出现什么错误消息?
我发现当我安装 SQL Server 2008 Express 时,命名管道默认被禁用。 尝试打开 SQL Server 配置管理器。现在在左侧窗格中打开“SQL Server 网络配置”,然后单击“Protocaols for SQLEXPRESS”。在右侧窗格中检查命名管道是否已启用。重新启动 SQL Server 以使更改生效。
我必须尝试从我的 WPF 应用程序使用命名管道连接到 LocalDB(ARM64 不支持使用实例名称连接到 LocalDB),这对我有用:
Server=np:\\.\pipe\LOCALDB#<pipeid>\tsql\query;Database=MyDb
上面将连接到默认实例中名为
MyDb
的数据库,即MSSQLLocalDB
。
如果您想通过指定MDF文件连接数据库,也可以类似操作。只需将
MyDb
替换为 MDF 文件的路径,如下所示:
Server=np:\\.\pipe\LOCALDB#<pipeid>\tsql\query;Database=C:\Path\To\MyDb.MDF
不用担心路径中是否有空间;你不需要逃离空间。
要获取默认实例的命名管道名称
MSSQLLocalDB
,请运行此命令
SqlLocalDB info MSSQLLocalDB
这会给你这样的东西:
Name: mssqllocaldb
Version: 16.0.1130.5
Shared name:
Owner: <user>
Auto-create: Yes
State: Running
Last start time: 10/15/2024 1:23:10 PM
Instance pipe name: np:\\.\pipe\LOCALDB#A6947BDD\tsql\query
如果
State
是Stopped
,则需要从以下命令开始:
SqlLocalDB start MSSQLLocalDB
使用命名管道连接,如下所示
CONNECTION_NAME = "Provider=SQLNCLI10.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog="CatalogName";Data Source="Production_Server_Name;""