A classe descrita permite obter dados de bases de dados Access, Microsoft SQL ou Oracle
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
Artigo transferido do fórum, escrito por Hellblazer