Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


C#.NET con Oracle

Foro sobre el nuevo lenguaje C# conocido tambien como CSharp o C Numeral

Moderador: Bestprogramado

C#.NET con Oracle

Notapor Mafesa83 el Sab Feb 02, 2008 4:13 pm

Cual es la forma mas correcta se usar el C# en ASP.NET para la conexion a una BD ORACLE 10g XE
Mafesa Creations
Lic. Mauricio Felipe Sanchez Feria
Avatar de Usuario
Mafesa83
Usuario Activo
Usuario Activo
 
Mensajes: 55
Registrado: Lun Mar 26, 2007 2:12 pm
Ubicación: Tabasco-Mexico

Reformulo la pregunta

Notapor Mafesa83 el Dom Feb 03, 2008 1:08 pm

lo que estoy haciendo es que desde una pagina web se puede registrar una persona y que todos esos datos sean guardados en una BD Oracle 10g XE(Xpress Edition) y lo estoy desarrollando desde el Visual Studio.NET 2005 y no se que es lo que pasa que no deja que haya una conexion con la DB.
Código: Seleccionar todo

protected void Aceptar_Click(object sender, EventArgs e)
    { 
        //creo mi cadena de conexion que se va a llamar ParamConexion que incluye todos
       //Los parametros de una conexion de la base de datos.
        String ParamConexion = "Data Source=XE;Persist Security Info=False;User ID=equipo2;Password=eq2;Unicode=True";
       
        //declaro la nueva conexion a la base de datos de que voy a usar
        System.Data.OracleClient.OracleConnection MyConexion = new System.Data.OracleClient.OracleConnection();
       
        //paso los parametros de conexion a la conexion del ASP con ORACLE
        MyConexion.ConnectionString = ParamConexion;
       
        // Declaro una variable de tipo command del oracle
        System.Data.OracleClient.OracleCommand MyCommand = new System.Data.OracleClient.OracleCommand();
                     
        //Declaro mis parametros que voy a utilizar
        System.Data.OracleClient.OracleParameter Claveq;
        System.Data.OracleClient.OracleParameter Nombreq;
       
        //Instanceo mis parametros
        Claveq  = new System.Data.OracleClient.OracleParameter();
        Nombreq = new System.Data.OracleClient.OracleParameter();

        //Asigna a los parámetros los valores que serán almacenados
        Claveq.OracleType = System.Data.OracleClient.OracleType.Int32;
        Nombreq.OracleType = System.Data.OracleClient.OracleType.VarChar;
       
        //le doy nombre a los parametros
        Claveq.ParameterName = "Param1";
        Nombreq.ParameterName = "Param2";
       
        //les digo de que tipo de parametros van a hacer.
        Claveq.Value = Int32.Parse(Nombres.Text.ToString());
        Nombreq.Value = Paternos.Text.ToString();

        //Limpio los parametros que voy a utilizar evitando alguna basura...
        MyCommand.Parameters.Clear();
       
        //agrego los parametros para la ejecucion del comando
        MyCommand.Parameters.Add(Claveq);
        MyCommand.Parameters.Add(Nombreq);
       
        //agrego el comando a ser ejecutado
        MyCommand.CommandText = "insert into especialidades(cve_especialidades,Nombre)values(Param1,Param2)";
       
        //simplemente y sencillamente abro la conexion ejecuto el comando
        //y luego cierro la conexion
        MyConexion.Open();
        MyCommand.ExecuteNonQuery();
        MyConexion.Close();     
    }


Gracias por su tiempo si alguien me pudiera echar la mano es esto se lo agradeceria. mi correo es maurilu2@hotmail.com. muchas gracias
Mafesa Creations
Lic. Mauricio Felipe Sanchez Feria
Avatar de Usuario
Mafesa83
Usuario Activo
Usuario Activo
 
Mensajes: 55
Registrado: Lun Mar 26, 2007 2:12 pm
Ubicación: Tabasco-Mexico

Re: C#.NET con Oracle

Notapor Mafesa83 el Dom Abr 27, 2008 12:27 pm

Solucione este problema corregiendo la cadena de conexion, e insertando objetos de conexion y comandos, a demas agregando una referencia de System.Data.Oracliente, todo eso era mi problemita, y por ahora estoy creciendo mucho en la programacion de PL/SQL y el Oracle en conjunto de VS.NET
Mafesa Creations
Lic. Mauricio Felipe Sanchez Feria
Avatar de Usuario
Mafesa83
Usuario Activo
Usuario Activo
 
Mensajes: 55
Registrado: Lun Mar 26, 2007 2:12 pm
Ubicación: Tabasco-Mexico

Re: C#.NET con Oracle

Notapor Mafesa83 el Dom Abr 27, 2008 2:05 pm

La verdad, mil disculpas por la tardanza, y no me dio tiempo de escribir la respuesta, dado que todavia no eh terminado el trabajo, Mientras encuentro otra cosa le termino de platicar en que termino este desenlace.


Existen 3 formas para poder hacer estas operaciones de INSERT, DELETE, UPDATE.

1.- Cadena de texto
2.- Usando parametros
3.- Llamando procedimientos

solo voy a poner un ejemplo muy sencillo para su explicacion.

1.- Cadenas de Texto
solo utilizar los datos que vas a utilizar para la insercion.
ej.
MyCommand.CommandText="DELETE FROM TABLA WHERE '"+valor.Text.ToString()+"'";
MyCommand.ExecuteNonQuery();


2.- Usando Parametros
es lo que habia hecho primero.

/Declaro mis parametros que voy a utilizar
System.Data.OracleClient.OracleParameter Nombreq;

//Instanceo mis parametros
Nombreq = new System.Data.OracleClient.OracleParameter();

//Asigna a los parámetros los valores que serán almacenados
Nombreq.OracleType = System.Data.OracleClient.OracleType.VarChar;

//le doy nombre a los parametros
Nombreq.ParameterName = "Param1";

//les digo de que tipo de parametros van a hacer.
Nombreq.Value = Paternos.Text.ToString();

//Limpio los parametros que voy a utilizar evitando alguna basura...
MyCommand.Parameters.Clear();

//agrego los parametros para la ejecucion del comando
MyCommand.Parameters.Add(Nombreq);

//agrego el comando a ser ejecutado
MyCommand.CommandText = "insert into especialidades(Nombre)values(:Param2)";
MyCommand.ExecuteNonQuery();

3.- Llamando Procedimientos
El procedimiento debe esta ya compilado y listo para usarse, en este caso es para las operaciones mencionadas anteriormente.

MyCommand.CommandText="CALL PROCEDIMIENTO1("+Valor1.Text.ToString()+")"
MyCommand.ExecuteNonQuery();

ahora bien, asi como estan en caso de tener un error, les marcarian errores desde el Compilador como les mostraba
"El còdigo de usuario no controlò invalidOperationExeption, operaciòn no valida; se ha terminado la conexion Sugerencias para solucionar problemas".

esto es porque no utilizaba los:
TRY
{MyConexion.Open();
}
CATCH(Exception ex)
{MessageBox.Show(ex.Mesage,"encabezado",MessageBut tons.OK);
}
FINALLY
{MyConexion.Close();
}

el catch recoge el error y ya no se saca del programa sino que solo te lo manda en un cuadro de dialogo.

saludos espero que sirva de algo,
Mafesa Creations
Lic. Mauricio Felipe Sanchez Feria
Avatar de Usuario
Mafesa83
Usuario Activo
Usuario Activo
 
Mensajes: 55
Registrado: Lun Mar 26, 2007 2:12 pm
Ubicación: Tabasco-Mexico


Volver a C# (CSharp)

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado