适用范围:SQL Server 
Azure 数据工厂中的 SSIS Integration Runtime
ConnectionManager 类表示与外部数据源的物理连接。 ConnectionManager 类可将连接的实现细节与运行时隔离。 这使得运行时以一致且可预测的方式与每个连接管理器进行交互。 连接管理器包含所有连接通用的常用属性,如 Name、ID、Description 和 ConnectionString。 但是,通常配置连接管理器只需 ConnectionString 和 Name 属性。 在其他编程范例中,连接类会提供一些方法(如“打开”或“连接”)以物理方式建立与数据源的连接,而不同的是,运行时引擎会在包运行时管理包的所有连接。
Connections 类是一个已添加到该包并且可在运行时使用的连接管理器的集合。 可以使用该集合的 Add 方法,并提供一个用于指示连接管理器类型的字符串,以向该集合添加更多的连接管理器。 Add 方法返回已添加到该包的 ConnectionManager 实例。
内部属性
ConnectionManager 类公开一组所有连接通用的属性。 但有时需要访问特定连接类型特有的属性。 Properties 类的 ConnectionManager 集合提供对这些属性的访问。 可以使用索引器或属性名称以及 GetValue 方法从集合检索这些属性,并使用 SetValue 方法设置属性的值。 设置基础连接对象属性的属性的另一种方法是:获取该对象的实际实例并直接设置其属性。 若要获取基础连接,请使用连接管理器的 InnerObject 属性。 下面的代码行显示了一行 C# 代码,该代码行创建一个具有基础类 ConnectionManagerAdoNetClass 的 ADO.NET 连接管理器。
ConnectionManagerAdoNetClass cmado = cm.InnerObject as ConnectionManagerAdoNet;
这可将托管连接管理器对象转换为其基础连接对象。 如果使用 C++,则需要调用 ConnectionManager 对象的 QueryInterface 方法,并请求基础连接对象的接口。
下表列出了集成服务中包含的连接管理器以及 package.Connections.Add("xxx") 语句中使用的字符串。 若要获取所有连接管理器的列表,请参阅 Integration Services (SSIS) 连接。
| String | “ODBC 源编辑器” | 
|---|---|
| "OLEDB" | OLE DB 连接的连接管理器。 | 
| "ODBC" | ODBC 连接的连接管理器。 | 
| "ADO" | ADO 连接的连接管理器。 | 
| "ADO.NET:SQL" | ADO.NET(SQL 数据访问接口)连接的连接管理器。 | 
| "ADO.NET:OLEDB" | ADO.NET(OLE DB 数据访问接口)连接的连接管理器。 | 
| "FLATFILE" | 平面文件连接的连接管理器。 | 
| "FILE" | 文件连接的连接管理器。 | 
| "MULTIFLATFILE" | 多平面文件连接的连接管理器。 | 
| "MULTIFILE" | 多文件连接的连接管理器。 | 
| "SQLMOBILE" | SQL Server Compact 连接的连接管理器。 | 
| "MSOLAP100" | Analysis Services 连接的连接管理器。 | 
| "FTP" | FTP 连接的连接管理器。 | 
| "HTTP" | HTTP 连接的连接管理器。 | 
| "MSMQ" | 消息队列(也称为 MSMQ)连接的连接管理器。 | 
| "SMTP" | SMTP 连接的连接管理器。 | 
| "WMI" | Microsoft Windows Management Instrumentation (WMI) 连接的连接管理器。 | 
下面的代码示例演示如何向 Connections 的 Package 集合添加 OLE DB 和 FILE 连接。 然后,该示例还设置了 ConnectionString、Name 和 Description 属性。
using System;
using Microsoft.SqlServer.Dts.Runtime;
  
namespace Microsoft.SqlServer.Dts.Samples
{
  class Program
  {
    static void Main(string[] args)
    {
      // Create a package, and retrieve its connections.
      Package pkg = new Package();
      Connections pkgConns = pkg.Connections;
  
      // Add an OLE DB connection to the package, using the
      // method defined in the AddConnection class.
      CreateConnection myOLEDBConn = new CreateConnection();
      myOLEDBConn.CreateOLEDBConnection(pkg);
  
      // View the new connection in the package.
      Console.WriteLine("Connection description: {0}",
         pkg.Connections["SSIS Connection Manager for OLE DB"].Description);
  
      // Add a second connection to the package.
      CreateConnection myFileConn = new CreateConnection();
      myFileConn.CreateFileConnection(pkg);
  
      // View the second connection in the package.
      Console.WriteLine("Connection description: {0}",
        pkg.Connections["SSIS Connection Manager for Files"].Description);
  
      Console.WriteLine();
      Console.WriteLine("Number of connections in package: {0}", pkg.Connections.Count);
  
      Console.Read();
    }
  }
  // <summary>
  // This class contains the definitions for multiple
  // connection managers.
  // </summary>
  public class CreateConnection
  {
    // Private data.
    private ConnectionManager ConMgr;
  
    // Class definition for OLE DB Provider.
    public void CreateOLEDBConnection(Package p)
    {
      ConMgr = p.Connections.Add("OLEDB");
      ConMgr.ConnectionString = "Provider=SQLOLEDB.1;" +
        "Integrated Security=SSPI;Initial Catalog=AdventureWorks;" +
        "Data Source=(local);";
      ConMgr.Name = "SSIS Connection Manager for OLE DB";
      ConMgr.Description = "OLE DB connection to the AdventureWorks database.";
    }
    public void CreateFileConnection(Package p)
    {
      ConMgr = p.Connections.Add("File");
      ConMgr.ConnectionString = @"\\<yourserver>\<yourfolder>\books.xml";
      ConMgr.Name = "SSIS Connection Manager for Files";
      ConMgr.Description = "Flat File connection";
    }
  }
  
}
Imports Microsoft.SqlServer.Dts.Runtime
  
Module Module1
  
  Sub Main()
  
    ' Create a package, and retrieve its connections.
    Dim pkg As New Package()
    Dim pkgConns As Connections = pkg.Connections
  
    ' Add an OLE DB connection to the package, using the
    ' method defined in the AddConnection class.
    Dim myOLEDBConn As New CreateConnection()
    myOLEDBConn.CreateOLEDBConnection(pkg)
  
    ' View the new connection in the package.
    Console.WriteLine("Connection description: {0}", _
      pkg.Connections("SSIS Connection Manager for OLE DB").Description)
  
    ' Add a second connection to the package.
    Dim myFileConn As New CreateConnection()
    myFileConn.CreateFileConnection(pkg)
  
    ' View the second connection in the package.
    Console.WriteLine("Connection description: {0}", _
      pkg.Connections("SSIS Connection Manager for Files").Description)
  
    Console.WriteLine()
    Console.WriteLine("Number of connections in package: {0}", pkg.Connections.Count)
  
    Console.Read()
  
  End Sub
  
End Module
  
' This class contains the definitions for multiple
' connection managers.
  
Public Class CreateConnection
  ' Private data.
  Private ConMgr As ConnectionManager
  
  ' Class definition for OLE DB provider.
  Public Sub CreateOLEDBConnection(ByVal p As Package)
    ConMgr = p.Connections.Add("OLEDB")
    ConMgr.ConnectionString = "Provider=SQLOLEDB.1;" & _
      "Integrated Security=SSPI;Initial Catalog=AdventureWorks;" & _
      "Data Source=(local);"
    ConMgr.Name = "SSIS Connection Manager for OLE DB"
    ConMgr.Description = "OLE DB connection to the AdventureWorks database."
  End Sub
  
  Public Sub CreateFileConnection(ByVal p As Package)
    ConMgr = p.Connections.Add("File")
    ConMgr.ConnectionString = "\\<yourserver>\<yourfolder>\books.xml"
    ConMgr.Name = "SSIS Connection Manager for Files"
    ConMgr.Description = "Flat File connection"
  End Sub
  
End Class
示例输出:
Connection description: OLE DB connection to the AdventureWorks database.
Connection description: Flat File connection.
Number of connections in package: 2