C#.NET con Oracle

Moderador: raul338

C#, tambien llamado C Sharp

C#.NET con Oracle

Notapor Mafesa83 » 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
Corporativo de Servicios y Sistemas Profesionales
LC. Mauricio Felipe Sanchez Feria
Mafesa83
Usuario Activo
Usuario Activo
 
Mensajes: 61
Registrado: Lun Mar 26, 2007 2:12 pm
Ubicación: Tabasco-Mexico


Reformulo la pregunta

Notapor Mafesa83 » 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
  1.  

  2.  

  3.  protected void Aceptar_Click(object sender, EventArgs e)

  4.     {  

  5.         //creo mi cadena de conexion que se va a llamar ParamConexion que incluye todos

  6.        //Los parametros de una conexion de la base de datos.

  7.         String ParamConexion = "Data Source=XE;Persist Security Info=False;User ID=equipo2;Password=eq2;Unicode=True";

  8.        

  9.         //declaro la nueva conexion a la base de datos de que voy a usar

  10.         System.Data.OracleClient.OracleConnection MyConexion = new System.Data.OracleClient.OracleConnection();

  11.        

  12.         //paso los parametros de conexion a la conexion del ASP con ORACLE

  13.         MyConexion.ConnectionString = ParamConexion;

  14.        

  15.         // Declaro una variable de tipo command del oracle

  16.         System.Data.OracleClient.OracleCommand MyCommand = new System.Data.OracleClient.OracleCommand();

  17.                      

  18.         //Declaro mis parametros que voy a utilizar

  19.         System.Data.OracleClient.OracleParameter Claveq;

  20.         System.Data.OracleClient.OracleParameter Nombreq;

  21.        

  22.         //Instanceo mis parametros

  23.         Claveq  = new System.Data.OracleClient.OracleParameter();

  24.         Nombreq = new System.Data.OracleClient.OracleParameter();

  25.  

  26.         //Asigna a los parámetros los valores que serán almacenados

  27.         Claveq.OracleType = System.Data.OracleClient.OracleType.Int32;

  28.         Nombreq.OracleType = System.Data.OracleClient.OracleType.VarChar;

  29.        

  30.         //le doy nombre a los parametros

  31.         Claveq.ParameterName = "Param1";

  32.         Nombreq.ParameterName = "Param2";

  33.        

  34.         //les digo de que tipo de parametros van a hacer.

  35.         Claveq.Value = Int32.Parse(Nombres.Text.ToString());

  36.         Nombreq.Value = Paternos.Text.ToString();

  37.  

  38.         //Limpio los parametros que voy a utilizar evitando alguna basura...

  39.         MyCommand.Parameters.Clear();

  40.        

  41.         //agrego los parametros para la ejecucion del comando

  42.         MyCommand.Parameters.Add(Claveq);

  43.         MyCommand.Parameters.Add(Nombreq);

  44.        

  45.         //agrego el comando a ser ejecutado

  46.         MyCommand.CommandText = "insert into especialidades(cve_especialidades,Nombre)values(Param1,Param2)";

  47.        

  48.         //simplemente y sencillamente abro la conexion ejecuto el comando

  49.         //y luego cierro la conexion

  50.         MyConexion.Open();

  51.         MyCommand.ExecuteNonQuery();

  52.         MyConexion.Close();      

  53.     }

  54.  



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


Re: C#.NET con Oracle

Notapor Mafesa83 » Dom Abr 27, 2008 12:28 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
Corporativo de Servicios y Sistemas Profesionales
LC. Mauricio Felipe Sanchez Feria
Mafesa83
Usuario Activo
Usuario Activo
 
Mensajes: 61
Registrado: Lun Mar 26, 2007 2:12 pm
Ubicación: Tabasco-Mexico

Re: C#.NET con Oracle

Notapor Mafesa83 » 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,
Corporativo de Servicios y Sistemas Profesionales
LC. Mauricio Felipe Sanchez Feria
Mafesa83
Usuario Activo
Usuario Activo
 
Mensajes: 61
Registrado: Lun Mar 26, 2007 2:12 pm
Ubicación: Tabasco-Mexico


    

Volver a C#

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados