Sdílet prostřednictvím


Vývoj uživatelského rozhraní pro vlastní správce připojení

platí pro:SQL Server SSIS Integration Runtime ve službě Azure Data Factory

Jakmile přepíšete implementaci vlastností a metod základní třídy, abyste mohli poskytovat vlastní funkce, můžete pro správce připojení vytvořit vlastní uživatelské rozhraní. Pokud nevytvoříte vlastní uživatelské rozhraní, můžou uživatelé nakonfigurovat správce připojení pouze pomocí okna Vlastnosti.

Ve vlastním projektu nebo sestavení uživatelského rozhraní obvykle máte dvě třídy třídy, které implementují IDtsConnectionManagerUIa formulář Systému Windows, který se zobrazí ke shromáždění informací od uživatele.

Důležitý

Po podepsání a sestavení vlastního uživatelského rozhraní a jeho instalaci do globální mezipaměti sestavení, jak je popsáno v Kódování vlastního správce připojení, nezapomeňte zadat plně kvalifikovaný název této třídy ve vlastnosti UITypeNameDtsConnectionAttribute.

Poznámka

Většina úkolů, zdrojů a cílů integrovaných do integračních služeb funguje jenom s konkrétními typy předdefinovaných správců připojení. Proto tyto ukázky nelze testovat pomocí předdefinovaných úloh a komponent.

Kódování třídy uživatelského rozhraní

Rozhraní IDtsConnectionManagerUI má čtyři metody: Initialize, New, Edita Delete. Následující části popisují tyto čtyři metody.

Poznámka

Pokud uživatel odstraní instanci správce připojení, nemusí být nutné psát žádný kód pro metodu Delete.

Inicializace uživatelského rozhraní

V Initialize metodě návrhář poskytuje odkaz na správce připojení, který je nakonfigurován tak, aby třída uživatelského rozhraní může upravit vlastnosti správce připojení. Jak je znázorněno v následujícím kódu, váš kód musí uložit odkaz na správce připojení pro pozdější použití.

Public Sub Initialize(ByVal connectionManager As Microsoft.SqlServer.Dts.Runtime.ConnectionManager, ByVal serviceProvider As System.IServiceProvider) Implements Microsoft.SqlServer.Dts.Runtime.Design.IDtsConnectionManagerUI.Initialize  
  
    _connectionManager = connectionManager  
    _serviceProvider = serviceProvider  
  
  End Sub  
public void Initialize(Microsoft.SqlServer.Dts.Runtime.ConnectionManager connectionManager, System.IServiceProvider serviceProvider)  
{  
  
  _connectionManager = connectionManager;  
  _serviceProvider = serviceProvider;  
  
}  

Vytvoření nové instance uživatelského rozhraní

Metoda New, která není konstruktorem, je volána za metodu Initialize, když uživatel vytvoří novou instanci správce připojení. V metodě New obvykle chcete zobrazit formulář pro úpravy, pokud uživatel nekopíroval a vložili existujícího správce připojení. Následující kód ukazuje implementaci této metody.

Public Function [New](ByVal parentWindow As System.Windows.Forms.IWin32Window, ByVal connections As Microsoft.SqlServer.Dts.Runtime.Connections, ByVal connectionUIArgs As Microsoft.SqlServer.Dts.Runtime.Design.ConnectionManagerUIArgs) As Boolean Implements Microsoft.SqlServer.Dts.Runtime.Design.IDtsConnectionManagerUI.New  
  
  Dim clipboardService As IDtsClipboardService  
  
  clipboardService = _  
    DirectCast(_serviceProvider.GetService(GetType(IDtsClipboardService)), IDtsClipboardService)  
  If Not clipboardService Is Nothing Then  
    ' If the connection manager has been copied and pasted, take no action.  
    If clipboardService.IsPasteActive Then  
      Return True  
    End If  
  End If  
  
  Return EditSqlConnection(parentWindow)  
  
End Function  
public bool New(System.Windows.Forms.IWin32Window parentWindow, Microsoft.SqlServer.Dts.Runtime.Connections connections, Microsoft.SqlServer.Dts.Runtime.Design.ConnectionManagerUIArgs connectionUIArgs)  
  {  
    IDtsClipboardService clipboardService;  
  
    clipboardService = (IDtsClipboardService)_serviceProvider.GetService(typeof(IDtsClipboardService));  
    if (clipboardService != null)  
    // If connection manager has been copied and pasted, take no action.  
    {  
      if (clipboardService.IsPasteActive)  
      {  
        return true;  
      }  
    }  
  
    return EditSqlConnection(parentWindow);  
  }  

Úprava Správce připojení

Vzhledem k tomu, že formulář pro úpravy se volá z New i z metod Edit, je vhodné použít pomocnou funkci k zapouzdření kódu, který formulář zobrazí. Následující kód ukazuje implementaci této pomocné funkce.

Private Function EditSqlConnection(ByVal parentWindow As IWin32Window) As Boolean  
  
  Dim sqlCMUIForm As New SqlConnMgrUIFormVB  
  
  sqlCMUIForm.Initialize(_connectionManager, _serviceProvider)  
  If sqlCMUIForm.ShowDialog(parentWindow) = DialogResult.OK Then  
    Return True  
  Else  
    Return False  
  End If  
  
End Function  
private bool EditSqlConnection(IWin32Window parentWindow)  
 {  
  
   SqlConnMgrUIFormCS sqlCMUIForm = new SqlConnMgrUIFormCS();  
  
   sqlCMUIForm.Initialize(_connectionManager, _serviceProvider);  
   if (sqlCMUIForm.ShowDialog(parentWindow) == DialogResult.OK)  
   {  
     return true;  
   }  
   else  
   {  
     return false;  
   }  
  
 }  

V metodě Edit stačí zobrazit formulář pro úpravy. Následující kód ukazuje implementaci Edit metody, která používá pomocnou funkci k zapouzdření kódu formuláře.

Public Function Edit(ByVal parentWindow As System.Windows.Forms.IWin32Window, ByVal connections As Microsoft.SqlServer.Dts.Runtime.Connections, ByVal connectionUIArg As Microsoft.SqlServer.Dts.Runtime.Design.ConnectionManagerUIArgs) As Boolean Implements Microsoft.SqlServer.Dts.Runtime.Design.IDtsConnectionManagerUI.Edit  
  
  Return EditSqlConnection(parentWindow)  
  
End Function  
public bool Edit(System.Windows.Forms.IWin32Window parentWindow, Microsoft.SqlServer.Dts.Runtime.Connections connections, Microsoft.SqlServer.Dts.Runtime.Design.ConnectionManagerUIArgs connectionUIArg)  
{  
  
  return EditSqlConnection(parentWindow);  
  
}  

Kódování formuláře uživatelského rozhraní

Po vytvoření třídy uživatelského rozhraní, která implementuje metody rozhraní IDtsConnectionManagerUI, musíte vytvořit formulář systému Windows, kde uživatel může konfigurovat vlastnosti správce připojení.

Inicializace formuláře uživatelského rozhraní

Když zobrazíte vlastní formulář pro úpravy, můžete předat odkaz na správce připojení, který se upravuje. Tento odkaz můžete předat buď pomocí vlastního konstruktoru pro třídu formuláře, nebo vytvořením vlastní Initialize metoda, jak je znázorněno zde.

Public Sub Initialize(ByVal connectionManager As ConnectionManager, ByVal serviceProvider As IServiceProvider)  
  
  _connectionManager = connectionManager  
  _serviceProvider = serviceProvider  
  ConfigureControlsFromConnectionManager()  
  EnableControls()  
  
End Sub  
public void Initialize(ConnectionManager connectionManager, IServiceProvider serviceProvider)  
 {  
  
   _connectionManager = connectionManager;  
   _serviceProvider = serviceProvider;  
   ConfigureControlsFromConnectionManager();  
   EnableControls();  
  
 }  

Nastavení vlastností ve formuláři uživatelského rozhraní

Třída formuláře nakonec potřebuje pomocnou funkci, která naplní ovládací prvky ve formuláři při prvním načtení existujícími nebo výchozími hodnotami vlastností správce připojení. Třída formuláře také potřebuje podobnou funkci, která nastaví hodnoty vlastností na hodnoty zadané uživatelem, když uživatel klikne na OK a zavře formulář.

Private Const CONNECTIONNAME_BASE As String = "SqlConnectionManager"  
  
Private Sub ConfigureControlsFromConnectionManager()  
  
  Dim tempName As String  
  Dim tempServerName As String  
  Dim tempDatabaseName As String  
  
  With _connectionManager  
  
    tempName = .Properties("Name").GetValue(_connectionManager).ToString  
    If Not String.IsNullOrEmpty(tempName) Then  
      _connectionName = tempName  
    Else  
      _connectionName = CONNECTIONNAME_BASE  
    End If  
  
    tempServerName = .Properties("ServerName").GetValue(_connectionManager).ToString  
    If Not String.IsNullOrEmpty(tempServerName) Then  
      _serverName = tempServerName  
      txtServerName.Text = _serverName  
    End If  
  
    tempDatabaseName = .Properties("DatabaseName").GetValue(_connectionManager).ToString  
    If Not String.IsNullOrEmpty(tempDatabaseName) Then  
      _databaseName = tempDatabaseName  
      txtDatabaseName.Text = _databaseName  
    End If  
  
  End With  
  
End Sub  
  
Private Sub ConfigureConnectionManagerFromControls()  
  
  With _connectionManager  
    .Properties("Name").SetValue(_connectionManager, _connectionName)  
    .Properties("ServerName").SetValue(_connectionManager, _serverName)  
    .Properties("DatabaseName").SetValue(_connectionManager, _databaseName)  
  End With  
  
End Sub  
private const string CONNECTIONNAME_BASE = "SqlConnectionManager";  
  
private void ConfigureControlsFromConnectionManager()  
 {  
  
   string tempName;  
   string tempServerName;  
   string tempDatabaseName;  
  
   {  
     tempName = _connectionManager.Properties["Name"].GetValue(_connectionManager).ToString();  
     if (!String.IsNullOrEmpty(tempName))  
     {  
       _connectionName = tempName;  
     }  
     else  
     {  
       _connectionName = CONNECTIONNAME_BASE;  
     }  
  
     tempServerName = _connectionManager.Properties["ServerName"].GetValue(_connectionManager).ToString();  
     if (!String.IsNullOrEmpty(tempServerName))  
     {  
       _serverName = tempServerName;  
       txtServerName.Text = _serverName;  
     }  
  
     tempDatabaseName = _connectionManager.Properties["DatabaseName"].GetValue(_connectionManager).ToString();  
     if (!String.IsNullOrEmpty(tempDatabaseName))  
     {  
       _databaseName = tempDatabaseName;  
       txtDatabaseName.Text = _databaseName;  
     }  
  
   }  
  
 }  
  
 private void ConfigureConnectionManagerFromControls()  
 {  
  
   {  
     _connectionManager.Properties["Name"].SetValue(_connectionManager, _connectionName);  
     _connectionManager.Properties["ServerName"].SetValue(_connectionManager, _serverName);  
     _connectionManager.Properties["DatabaseName"].SetValue(_connectionManager, _databaseName);  
   }  
  
 }  

Viz také

vytvoření vlastního správce připojení
kódování vlastního správce připojení