 VB.NET 
2005 -  
Obtendo os provedores e as instâncias do SQL Server
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.NoneEnd 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.NoneEnd 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