C# 如何在Visual Studio Sql Server对象资源管理器中获取所有连接的Sql Server

C# 如何在Visual Studio Sql Server对象资源管理器中获取所有连接的Sql Server,c#,visual-studio,visual-studio-extensions,C#,Visual Studio,Visual Studio Extensions,我想开发一个VisualStudio扩展 因此,我需要通过VisualStudioSQLServer对象资源管理器连接的所有数据库。 我想在程序执行期间连接到其中一些 我已经尝试通过 System.Data.Sql.SqlDataSourceEnumerator.Instance.GetDataSources() 但结果并不是一组正确的数据库 如果有可能获得有关连接数据库的所有信息,我的程序应该: var databases = GetAllConnectedDatabases(); forea

我想开发一个VisualStudio扩展

因此,我需要通过VisualStudioSQLServer对象资源管理器连接的所有数据库。 我想在程序执行期间连接到其中一些

我已经尝试通过

System.Data.Sql.SqlDataSourceEnumerator.Instance.GetDataSources()

但结果并不是一组正确的数据库

如果有可能获得有关连接数据库的所有信息,我的程序应该:

var databases = GetAllConnectedDatabases();
foreach (database in databases)
{
   database.Connect(); 
   // do something
}
是否有可能获得有关所有项目的信息 我通过Visual Studio Sql Server对象资源管理器连接的Sql Server


谢谢您的帮助。

我们可以通过检索相关连接。这里有一个简单的演示供您参考

 IVsDataExplorerConnectionManager decMgr = (IVsDataExplorerConnectionManager)this.ServiceProvider.GetService(typeof(IVsDataExplorerConnectionManager));

 foreach (var conn in decMgr.Connections)
 {
      var state = conn.Value.Connection.State;
      if (state == DataConnectionState.Closed)
      {
          conn.Value.Connection.Open();
      }
 }

谢谢。但是我始终获得0个连接。请检查服务器资源管理器上是否有数据连接。我已确保服务器/数据库已连接。但是现在我得到了一个生成错误“GetDeploymentPathFromVsixManifest”任务意外失败:()。。。还没有找到解决方案,所以我现在无法测试。但非常感谢您的输入。能够再次构建IVsDataExplorerConnectionManager.connections中的0个连接。“我的数据库在服务器资源管理器中列为已连接。@ColeWu MSFT用户询问的是如何在“SQL Server对象资源管理器”窗口中而不是从“服务器资源管理器”窗口中获取连接。有可能吗?我也需要答案