• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Hellblazer

Obter dados da base de dados Access, Oracle ou SQLServer [transferido para wiki]

3 mensagens neste tópico

Visto esta secção não ter um sub-quadro de how to's vou postar aqui se alguem quizer depois pode mover :)

Imports System.Data.OleDb
Imports System.Data.OracleClient
Imports System.Data.SqlClient

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''' Atenção Muito Importante: Importar Referencia "System.Data.OracleClient" ''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hellblazer,

Queres que passe este artigo para a wiki e fazes tu ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora