1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

VB.NET | Conectar a BD Oracle

Discussão em 'Programação' iniciada por diog0silva, 12 de Maio de 2009. (Respostas: 1; Visualizações: 2407)

  1. diog0silva

    diog0silva Power Member

    Boas.

    Tenho uma aplicação que está conectada a uma BD em SQL Server. Mas tenho de a alterar para Oracle. Consigo criar a BD, só não sei como fazer a ligação à BD através do VB.

    Eu agora, cada vez que quero fazer uma ligação à BD faço assim:

    Imports System.Data.SqlClient

    Public ConString As String = "Data Source....."

    ....

    Dim db as New SqlConnection (ConString)
    db.Open()

    Dim varsql As String = "SELECT xpto_nome FROM tab_xpto WHERE xpto_bi_pass = @bi_pass;"

    Dim cmd As New SqlCommand (varsql, db)
    cmd.Parameters.Add("@bi_pass", SqlDbType.VarChar).Value = txtBI_Pass.Text

    Dim dt As New DataTable
    Dim SqlAdp As New SqlAdapter (cmd)
    SqlAdp.Fill (dt)

    txtNome.Text = dt.Rows(0).Item("xpto_nome").ToString

    db.Close()

    Deduzo que se tiver a usar uma BD Oracle não seja igual. Alguém conhece alguma página que aborde mais ou menos isto?

    Cumprimentos
     
  2. Paos[CeRe4L]

    Paos[CeRe4L] Power Member

    Olá!

    Primeiro que tudo necessitas de importar esta biblioteca: System.Data.OracleClient (não sei se está no VS ou se tens de sacar).

    Depois, podes utilizar esta função que eu desenvolvi:

    Código:
        public static OracleDataReader ExecuteQuery(string commandText)
        {
            string remedy = "Data Source=REMEDY;User Id=userid;Password=pass;";
            OracleConnection connection = new OracleConnection(remedy);
            OracleDataReader dr = null;
    
            try
            {
                connection.Open();
                OracleCommand command = connection.CreateCommand();
                command.CommandText = commandText;
                dr = command.ExecuteReader();
            }
            catch (Exception exp)
            {
                Console.WriteLine(exp);
            }
            connection.Close();
    
            return dr;
        }
    
    A string remedy tem os dados de ligação à bd e a função recebe a query que queres devolver.

    Depois disso, ele devolve o objecto OracleDataReader, que podes usar assim:

    Código:
        public void Test()
        {
    
            OracleDataReader dr;
    
            string command = "SELECT * FROM table1";
    
            dr = Misc.ExecuteQuery(command);
    
            try
            {
                while (dr.Read())
                {
                    dr[0].ToString();
                }
            }
            catch (Exception e) { }
        }
    
    Não te esqueças que, se estás a usar uma BD Oracle, precisas de ter o TNSNAMES configurado.

    Espero ter ajudado! Ah, esqueci-me de referir que esse código está em C#! (Converte para VB, é fácil!)

    Abraço,

    Filipe
     

Partilhar esta Página