VB.NET | Conectar a BD Oracle

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
 
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
 
Back
Topo