以编程方式添加连接

适用范围:SQL Server Azure 数据工厂中的 SSIS Integration Runtime

ConnectionManager 类表示与外部数据源的物理连接。 ConnectionManager 类可将连接的实现细节与运行时隔离。 这使得运行时以一致且可预测的方式与每个连接管理器进行交互。 连接管理器包含所有连接通用的常用属性,如 NameIDDescriptionConnectionString。 但是,通常配置连接管理器只需 ConnectionStringName 属性。 在其他编程范例中,连接类会提供一些方法(如“打开”或“连接”)以物理方式建立与数据源的连接,而不同的是,运行时引擎会在包运行时管理包的所有连接。

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) 连接的连接管理器。

下面的代码示例演示如何向 ConnectionsPackage 集合添加 OLE DB 和 FILE 连接。 然后,该示例还设置了 ConnectionStringNameDescription 属性。

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

另请参阅