Bir özel Bağlantı Yöneticisi için bir kullanıcı arabirimi geliştirme
Uygulaması özellikleri ve kendi özel işlevsellik sağlamak için temel sınıfın yöntemlerini geçersiz sonra Bağlantı Yöneticisi için özel kullanıcı arabirim oluşturmak isteyebilirsiniz.Özel kullanıcı arabirim oluşturmak, kullanıcılar yalnızca Properties penceresini kullanarak Bağlantı Yöneticisi'ni yapılandırabilirsiniz.
Özel kullanıcı arabirim proje veya derleme, normalde iki sınıf vardır — uygulayan bir sınıf IDtsConnectionManagerUIve kullanıcının. bilgi toplamak için görüntüleyen Windows formu
Önemli |
---|
İmzalama ve kendi özel kullanıcı arabirim oluşturmak ve de yüklemeden sonra genel derleme önbelleği açıklandığı gibi bir özel Bağlantı Yöneticisi kodlama, bu sınıf tam nitelikli adını sağlamak unutmayın UITypeName özellik DtsConnectionAttribute. |
Özel bağlantı yöneticileri örnekleri için bkz: Integration Services örnekleri üzerinde Codeplex.Bu konuda gösterilen kod örnekleri sql Server özel Bağlantı Yöneticisi örnek çizilir.
Not
Görevleri, kaynakları ve hedefleri içine yerleşik çoğu Integration Services çalışmak yalnızca belirli türdeki yerleşik bağlantı yöneticileri.Bu nedenle, bu örnekler yerleşik görevler ve bileşenlerini sınanamıyor.
Kullanıcı arabirimi sınıfı kodlama
The IDtsConnectionManagerUI interface has four methods: Initialize, New, Edit, and Delete.Bu dört yöntem aşağıdaki bölümlerde açıklanmıştır.
Not
Herhangi bir kod yazmak gerekmeyebilir Delete yöntem ise temizleme gerekli olduğunda kullanıcı siler örnek Bağlantı Yöneticisi.
Kullanıcı arabirimi başlatılıyor
De Initialize yöntem, tasarımcı yapılandırılmış kullanıcı arabirim sınıfı değişiklik yapabileceğiniz böylece Bağlantı Yöneticisi bir başvuru sağlarBağlantı Yöneticisi'nin özellikler. Aşağıdaki kodda gösterildiği gibi önbellek Bağlantı Yöneticisi daha sonra kullanmak için referans kodunuzu gerekiyor.
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;
}
Yeni bir kullanıcı arabirimi örneği oluşturma
The New method, which is not a constructor, is called after the Initialize method when the user creates a new instance of the connection manager.De New , genellikle, istediğiniz yöntem görüntülenecek form düzenleme, sürece kullanıcı kopyalanır ve yapıştırılan bir varolan Bağlantı Yöneticisi.Aşağıdaki kod bu uygulaması gösterir yöntem.
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);
}
Bağlantı Yöneticisi'ni düzenleme
Formu düzenlemek için her ikisini de çağrıldığı New ve Edit yöntemleri, onu kodunu görüntüleyen kapsüllemek için bir yardımcı işlev kullanmak uygunform. Aşağıdaki kod bu yardımcı işlev uygulaması gösterir.
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;
}
}
De Edit yöntem, yalnızca sahip olduğunuz düzenleme formunu görüntülemek.Aşağıdaki kod uygulaması gösterir Edit bir yardımcı kullandığı yöntem işlev için form kodu kapsüllemek için
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);
}
Kullanıcı arabirimi formunu kodlama
Kullanıcı arabirim sınıfı oluşturma yöntemlerini uygulayan sonra IDtsConnectionManagerUI arabirim oluşturmanız gerekir bir Windows formu nereye kullanıcı yapılandırabileceğiniz Bağlantı Yöneticisi.
Kullanıcı arabirimi formunu başlatılıyor
Düzenleme için özel formunuzu görüntülediğinizde, düzenlenmekte olan Bağlantı Yöneticisi'ni bir başvuru iletebilirsiniz.Bu başvuru formu sınıfı için özel bir kurucu kullanarak veya oluşturarak kendi geçirebilirsiniz Initialize yöntem olarak gösterilen burada.
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();
}
Kullanıcı arabirimi formunu üzerinde özelliklerini ayarlama
Son olarak, var olan veya varsayılan değerler, Bağlantı Yöneticisi özelliklerinin ilk yüklendiği form üzerindeki denetimleri dolduran bir yardımcı işlev form sınıfınızın gerekiyor.Form sınıfınızın değerlerini özellikler kullanıcı Tamam'ı tıklatır ve formu kapatır kullanıcı tarafından girilen değerlere ayarlar benzer bir işlev de gerekiyor.
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);
}
}
|