Ferramentas de Utilizador

Ferramentas de Site


dev_net:vb.net:dadosaccessoraclesqlserv

Acesso a dados para Access, MSSQL e Oracle

A classe descrita permite obter dados de bases de dados Access, Microsoft SQL ou Oracle

É extremamente importante que não se esqueçam de importar as referências no início do bloco de código
Imports System.Data.OleDb
Imports System.Data.OracleClient
Imports System.Data.SqlClient
 
Public Class Class1
 
    Enum DataBaseType
        Access
        SQLServer
        Oracle
    End Enum
 
    ''' <summary>
    ''' Função GetDataFromSQL.
    ''' Retorna os valores obtidos na Query de entre varios tipos de Bases de Dados.
    ''' </summary>
    ''' <param name="strSQL">A Query a ser efectuada.</param>
    ''' <param name="strConnectionString">A ConnectionString para a base de dados.</param>
    ''' <param name="MyDataBaseType">O tipo de base de dados.</param>
    ''' <returns>Retorna um DataTable com a informação.</returns>
    ''' <remarks></remarks>
    Private Function GetDataFromSQL(ByVal strSQL As String, ByVal strConnectionString As String, ByVal MyDataBaseType As DataBaseType) As DataTable
 
        Dim myDataTable As New DataTable()
 
        Try
 
            Select Case MyDataBaseType ' Conforme a base de dados
 
                Case DataBaseType.Access 'Se Access
 
                    Dim myConnectionAcess As New OleDbConnection(strConnectionString)
                    Dim myCommandAcess As New OleDbCommand(strSQL, myConnectionAcess)
                    Dim myDataAdapterAcess As New OleDbDataAdapter(myCommandAcess)
 
                    'Inicia a conecção
                    myConnectionAcess.Open()
 
                    'Se está conectado há base de dados
                    If myConnectionAcess.State = ConnectionState.Open Then
                        'Preenche o DataTable
                        myDataAdapterAcess.Fill(myDataTable)
                        'Fecha a ligação
                        myConnectionAcess.Close()
 
                    Else 'Se não está conectado
 
                        'Envia alerta ao utilizador
                        MessageBox.Show("Não foi possivel estabelecer uma ligação a base de dados", "Erro")
                    End If
 
                Case DataBaseType.Oracle 'Se Oracle
 
                    Dim myConnectionOracle As New OracleConnection(strConnectionString)
                    Dim myCommandOracle As New OracleCommand(strSQL, myConnectionOracle)
                    Dim myDataAdapterOracle As New OracleDataAdapter(myCommandOracle)
 
                    'Inicia a conecção
                    myConnectionOracle.Open()
 
                    'Se está conectado há base de dados
                    If myConnectionOracle.State = ConnectionState.Open Then
                        'Preenche o DataTable
                        myDataAdapterOracle.Fill(myDataTable)
                        'Fecha a ligação
                        myConnectionOracle.Close()
 
                    Else 'Se não está conectado
 
                        'Envia alerta ao utilizador
                        MessageBox.Show("Não foi possivel estabelecer uma ligação a base de dados", "Erro")
                    End If
 
                Case DataBaseType.SQLServer 'Se SQLServer
 
                    Dim myConnectionSQL As New SqlConnection(strConnectionString)
                    Dim myCommandSQL As New SqlCommand(strSQL, myConnectionSQL)
                    Dim myDataAdapterSQL As New SqlDataAdapter(myCommandSQL)
 
                    'Inicia a conecção
                    myConnectionSQL.Open()
 
                    'Se está conectado há base de dados
                    If myConnectionSQL.State = ConnectionState.Open Then
                        'Preenche o DataTable
                        myDataAdapterSQL.Fill(myDataTable)
                        'Fecha a ligação
                        myConnectionSQL.Close()
 
                    Else 'Se não está conectado
 
                        'Envia alerta ao utilizador
                        MessageBox.Show("Não foi possivel estabelecer uma ligação a base de dados", "Erro")
                    End If
 
            End Select
 
            If myDataTable.Rows.Count > 0 Then 'Se existem resultados
 
                Return myDataTable 'Retorna os dados.
 
            Else 'Se não
 
                Return New DataTable 'Retorna um DataTable vazio.
 
            End If
 
        Catch e As Exception
            Return New DataTable
        End Try
 
    End Function
 
End Class

Autoria

Artigo transferido do fórum, escrito por Hellblazer

dev_net/vb.net/dadosaccessoraclesqlserv.txt · Esta página foi modificada pela última vez em: 2018/05/14 21:37 (Edição externa)