Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

EduFranzoni

[Resolvido] Conexão com Oracle XE

Recommended Posts

Olá galera do iMasters.

Estou iniciando agora no desenvolvemento de Web Applications utilizando ASP.NET e C# com o Microsoft Visual Studio 2010 Professional.

 

Gostaria de saber, como ficaria a classe de conexão com o banco de dados Oracle XE?

 

Pesquisando pela internet eu criei uma classe, porém não deu certo, e não é do jeito que eu queria!

Gostaria de criar uma classe somente p/ conexão com o banco e outra classe somente com as operações(insert, delete, select)

 

O erro ocorre na linha

conn.open();

e diz o seguinte:

- OracleException was unhandled by user code";

- ORA-06413: Conexão não aberta;

 

A classe que eu criei foi a seguinte:

OBS: Adicionei a referencia System.Data.OracleClient;

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Data.OracleClient;


namespace Banco
{
   public partial class Principal : System.Web.UI.Page
   {
       protected void Page_Load(object sender, EventArgs e)
       {

       }

       protected void btnBotao_Click(object sender, EventArgs e)
       {
           	//limpo a label de debug
               lblMe.Text = "";
               //string de conexão para oracle XE

string connection = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)" +

                   "(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=xe)));" +

                   "User Id=MEU_LOGIN; Password=MINHA_SENHA";

           //crio o objeto de conexão, o parâmetro é minha string de conexão
           OracleConnection conn = new OracleConnection(connection);
           conn.Open();

           //abro a conexão


           //objeto de comando
           OracleCommand cmd = new OracleCommand();

           //frescura-bônus: string builder pode ser substituída por uma string normal,

           //é útil quando se deseja construir comandos muito grandes
           StringBuilder sb = new StringBuilder();

//construo o comando
sb.Append("SELECT A.ID, A.NOME FROM TBCLIENTE A");

//passo o comando (aqui poderia ser o comando diretamente)
cmd.CommandText = sb.ToString();

//informo que é do tipo texto



//a conexão do meu comando é o objeto con
cmd.Connection = conn; 

//crio meu leitor de dados
OracleDataReader dr = cmd.ExecuteReader(); 

//enquanto houver dados para ler...
while (dr.Read())
{
   //o nome entre [] é o nome da coluna

   lblMe.Text += dr["id"] + " - " + dr["nome"] + "<br />";

}

//libero a memória ocupada pela conexão
conn.Dispose();

       }
   }
}

 

 

 

E se alguém tiver um sistema básico de Cadastro, com esse tipo de conexão com o banco, e poder postar, ficaria muito grato.

 

Agradeço desde já, abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal desculpem minha 'burrice' mas ainda não consiguir fazer a conexão com o Oracle XE.

 

Quando tento adicionar uma nova conexão pelo menu Data -> Add new Data Source

 

- Seleciono a opção Database; Next

 

- Seleciono a opção Dataset; Next

 

- New connection;

 

Na tela Choose Data Source,

 

Escolho Oracle Database, e data provider: ".NET Framework Data Provider for Oracle; logo em seguida Continue;

 

na tela de preenchimento possui, "Server name", "user name", "password"

 

Preencho e quando clico em "Test Connection" diz o seguinte:

"ORA-12154: TNS:não foi possível resolver o identificador espeficado";

OBS: gostaria de saber o que seria o ServerName, e se o UserName e Password são do banco de dados, ou do usuario onde contem as tabelas(entidades).

 

e se executo o programa, diz que a Conexão não está aberta, como ja sitei anteriormente!

 

 

Estou aguardando respostas, pois não consigui instalar o SQL Server 2008 R2 Developer!

 

 

Att, abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera, finalmente consegui =)

 

Com o arquivo "Oracle XE simple example" nesse link, consegui conectar ao banco.

 

Porém ele mostra o resultado em uma saída de console, gostaria de saber o que que muda para exibir o resultado em uma label ou um gridview, como ficaria a aplicação?

OBS: criei uma label, e um botão, e coloquei esse código abaixo no evento do botão e em vez de colocar "Console.WriteLine", coloquei "lblLabel.Text ="... e não obtive sucesso.

 

http://www.codeproject.com/KB/cs/Oracle_XE_with_C_.aspx

 

Código que gera a saída no console!

ConnectionClass cc = new ConnectionClass();
           string strConn = cc.Connection();

           DataTable emp = cc.GetEmployees();

           for (int i = 0; i < emp.Rows.Count; i++)
           {
               //Print first name and lasy name
               Console.WriteLine(emp.Rows[i][1].ToString() + "\t\t");
           }
           cc.Terminate();

           Console.Read();

 

Também gostaria de saber como ficaria o método inserir(), remover(), e atualizar();

 

Tenho somente o select(), e gostaria de saber se o que muda é somente a string SQL ou mais coisas.

 

 public DataTable GetEmployees()
       {
           SQL = "SELECT * FROM TBCLIENTE";
           cmd = new OracleCommand(SQL, conn);
           cmd.CommandType = CommandType.Text;
           da = new OracleDataAdapter(cmd);
           ds = new DataSet();

           da.Fill(ds);
           return ds.Tables[0];
       }

 

Obrigado! att

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.