Além do software básico de conectividade do cliente Oracle, uma conexão Oracle com acesso aos recursos completos ao banco de dados requer o uso do que é conhecido como um provedor de dados gerenciado onde “gerenciado” refere-se ao código gerenciado pelo .NET. O provedor de dados é a camada entre o código. NET e o software de conectividade de cliente do Oracle. O Provedor de Dados Oracle para .NET (ODP.NET) é um ADO NET Oracle 2.0 de alto desempenho que expõe um conjunto completo de características específicas da Oracle e opções de ajuste, incluindo suporte para Real Application Clusters, DB XML e segurança avançada.
Obs: Caso não tenha instalado o ODAC 12c em seu computador você encontra um walkthrough de com instalar e configurar tanto o cliente ou o servidor Oracle, em nossa categoria SQL.
Conectando ao Oracle usando ODAC do Visual Studio
1 – Crie um novo projeto C# e Design Time disponha na tela 4 componentes Labels, 3 Textboxs e um Button e configure o layout com na figura abaixo:
2 – Na janela Solution Explorer com o botão direito no projeto clique em Add > Reference, na janela seguinte sobre o menu Assemblies > Extensions escolha a opção Oracle.DataAccess versão 4.112.2.0 e clique em OK:
3 – Use os trechos do código abaixo para completar o seu código gerado automaticamente.
Exemplo:
Neste exemplo utilizamos os Namespaces Oracle para conectar ao banco de dados usando Oracle Client, é possível distribuir sua aplicação sem que precise da instalação do cliente da Oracle distribuindo certos arquivos dll junto com sua aplicação.
C#
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Oracle.DataAccess.Client; // namespace Oracle namespace ConexaoOracle { public partial class Form1 : Form { public Form1() { InitializeComponent(); } // Cria conexão com o banco de dados Oracle static public void getDBConnection(string Username, string Password, string Datasource) { try { // String de Conexao string connectionString = // Usuario "User Id=" + Username + // Senha ";Password=" + Password + // TNSnames ";Data Source=" + Datasource; //Conecta ao datasource usando a conexão Oracle OracleConnection conn = new OracleConnection(connectionString); //Abre a conexão com o banco de dados conn.Open(); MessageBox.Show("Conexão efetuada com sucesso"); } // Retorna erro catch (Exception ex) { // Mostra menssagem de erro MessageBox.Show(ex.ToString()); } } private void button1_Click(object sender, EventArgs e) { // Cria conexão getDBConnection(textBox1.Text, textBox2.Text, textBox3.Text); } } }
Muito obrigado pela ajuda,
Tive que fazer uma pequena alteração informando host e porta em “Data Source”:
De:
// TNSnames
“;Data Source=” + Datasource;
Para:
// TNSnames
“;Data Source=localhost:1521/