VB.NET 2005 - Obtendo os provedores e as instâncias do SQL Server
O método GetDataSources do namespace System.Data.Common.SqlDataSourceEnumerator.Instance retorna uma objeto DataTable que possui uma linha para cada instância do SQL Server 2000 ou 2005 acessível. As colunas exibem as seguintes propriedades: ServerName, InstanceName, IsClustered e Version.
Da mesma forma o método GetFactoryClasses() de DbProviderFactories retorna um objeto DataTable contendo uma linha para cada provedor .NET de dados gerenciado instalado; as colunas exibe as propriedades para providers name, Description, InvariantName, AssemblyQualifiedName e SupportedClasses. (Provedores de terceiros não aparecem na tabela)
Nota: O arquivo machine.config contém um elemento para cada uma dos 4 namespaces dos provedores ADO.NET. Possuem também uma seção system.data que inclui estes provedores para DbProviderFactories. A classe GetFactoryClasses lê o arquivo machine.config para obter estas informações.
Vejamos a seguir um exemplo usando feito no Visual Basic 2005 Express Edition mostrando como obter estes valores.
Crie um novo projeto no VB 2005 chamado DataEnums; altere o nome do formulário de form1.vb para DataEnums.vb e neste formulário inclua dois componentes Label e dois controles DataGridView: dgvServers e dgvProviders
Declare os seguintes namespace usando a declaração imports:
Imports
System.DataA seguir no evento Load do formulário inclua o seguinte código:
Private
Sub frmDataEnums_Load(ByVal
sender As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load
With dgvServers .DataSource = dtServers .AutoGenerateColumns = True.RowHeadersVisible = False.BorderStyle = BorderStyle.None End With'Obtém e carrega uma lista dos provedores de dados .NET instalados Dim dtProviders As DataTable = DbProviderFactories.GetFactoryClasses() With dgvProviders .DataSource = dtProviders .AutoGenerateColumns = True.RowHeadersVisible = False.BorderStyle = BorderStyle.None End With End Sub |
Ao executar o projeto o resultado obtido é mostrado na figura abaixo:
Pegue o projeto completo aqui: DataEnums.zip
É assim mesmo: direto e objetivo. É o VB .NET 2005 ...
Até o
próximo artigo VB.NET 2005 ...
José Carlos Macoratti