Retroceder   Foros del Web > Programación para sitios web > .NET > web forms

Respuesta
 
Herramientas Desplegado
Antiguo 03-feb-2008, 11:12   #1 (permalink)
Mafesa83 no se puede cailificar en este momento
 
Avatar de Mafesa83
 
Fecha de Ingreso: marzo-2007
Ubicación: Villahermosa, Tabasco
Mensajes: 38
Enviar un mensaje por MSN a Mafesa83
Pregunta Asp.Net Con Oracle

Tengo un problema a la hora de hacer una operacion desde el ASP.NET con Oracle no me deja hacer operacion algun aqui les dejo los pasos que estoy utilizando si alguien pudiera encontrar mi error se lo agradeceria.

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(Pa ram1,Param2)";

//simplemente y sencillamente abro la conexion ejecuto el comando
//y luego cierro la conexion
MyConexion.Open();
MyCommand.ExecuteNonQuery();
MyConexion.Close();

}


Se lo agraceria mucho si me pudieran echar la mano. mi correo es maurilu2@hotmail.com
Mafesa83 está desconectado   Responder Citando
Antiguo 04-feb-2008, 04:37   #2 (permalink)
Javier Santamaria no se puede cailificar en este momento
 
Avatar de Javier Santamaria
 
Fecha de Ingreso: julio-2007
Mensajes: 294
Re: Asp.Net Con Oracle

Te da algun error? Cual es el problema?, el codigo parece estar bien.
Javier Santamaria está desconectado   Responder Citando
Antiguo 04-feb-2008, 23:44   #3 (permalink)
Mafesa83 no se puede cailificar en este momento
 
Avatar de Mafesa83
 
Fecha de Ingreso: marzo-2007
Ubicación: Villahermosa, Tabasco
Mensajes: 38
Enviar un mensaje por MSN a Mafesa83
Marca el error de: invalidOperationExeption

Gracias por tu tiempo Javier Santamaria.

y no marca ningun error a la hora de la compilacion es a la hora de la ejecucion.
cuando ejecuto el boton es cuando el Visual Web Developer 2005 Express marca el errorcito y empieza la depuracion de la aplicacion.

El còdigo de usuario no controlò invalidOperationExeption
operaciòn no valida; se ha terminado la conexion
Sugerencias para solucionar problemas

eso es todo lo que me manda y lo e investigado y no encuentro ayuda y mucho menos un ejemplo amplio y practico de facil entendimiento si me puedes ayudar te lo agradeceria.
Mafesa83 está desconectado   Responder Citando
Antiguo 05-feb-2008, 04:32   #4 (permalink)
Javier Santamaria no se puede cailificar en este momento
 
Avatar de Javier Santamaria
 
Fecha de Ingreso: julio-2007
Mensajes: 294
Re: Asp.Net Con Oracle

Sabes en que linea te da ese error?. Depuralo paso a paso para ver en que linea te salta el error.

Saludos
Javier Santamaria está desconectado   Responder Citando
Antiguo 05-feb-2008, 09:59   #5 (permalink)
Mafesa83 no se puede cailificar en este momento
 
Avatar de Mafesa83
 
Fecha de Ingreso: marzo-2007
Ubicación: Villahermosa, Tabasco
Mensajes: 38
Enviar un mensaje por MSN a Mafesa83
Re: Asp.Net Con Oracle

El error me lo marca en el

MyCommand.ExecuteNonQuery();
en esta linea es donde me marca el error o la exepcion que hace que no me permita insertar datos en la DB
Mafesa83 está desconectado   Responder Citando
Antiguo 06-feb-2008, 03:41   #6 (permalink)
Javier Santamaria no se puede cailificar en este momento
 
Avatar de Javier Santamaria
 
Fecha de Ingreso: julio-2007
Mensajes: 294
Re: Asp.Net Con Oracle

A lo mejor no tiene nada que ver , pero prueba a cambiar esta linea:

Código:
MyCommand.CommandText = "insert into especialidades(cve_especialidades,Nombre)values(Pa ram1,Param2)";
//este comentario es para que no se corte la linea, no hagas caso
Por esta:
Código:
MyCommand.CommandText = "insert into especialidades values (Pa ram1,Param2)";
Si esto no funciona a lo mejor es que no tienes permisos para insertar y por eso te da un eror de operacion no valida.

Ya nos cuentas. Todo el codigo parece estar bien.
Javier Santamaria está desconectado   Responder Citando
Antiguo 06-feb-2008, 22:57   #7 (permalink)
Mafesa83 no se puede cailificar en este momento
 
Avatar de Mafesa83
 
Fecha de Ingreso: marzo-2007
Ubicación: Villahermosa, Tabasco
Mensajes: 38
Enviar un mensaje por MSN a Mafesa83
Re: Asp.Net Con Oracle

Gracias por la aportacion... la verdad estoy contento de que me puedas ayudar... y de los permisos yo cree un nuevo usuario con las misma caracteristicas de un administrador en oracle y por eso no hay problema. ya lo voy a intentar y te digo que paso.
Mafesa83 está desconectado   Responder Citando
Antiguo 07-feb-2008, 00:29   #8 (permalink)
chcma está en el buen camino
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 1.853
Re: Asp.Net Con Oracle

[code]
MyCommand.CommandText = "insert into especialidades(cve_especialidades,Nombre)values(Pa ram1,Param2)";
[code]


Me extraña que esto te funcione.... el values tienes que ponerlo con espacios.

Intenta ejecutar una sentencia INSERT a pelo desde el .NET, para descartar errores del provedor.

Un saludo.
__________________
Charlie.
chcma está desconectado   Responder Citando
Antiguo 07-feb-2008, 18:55   #9 (permalink)
Mafesa83 no se puede cailificar en este momento
 
Avatar de Mafesa83
 
Fecha de Ingreso: marzo-2007
Ubicación: Villahermosa, Tabasco
Mensajes: 38
Enviar un mensaje por MSN a Mafesa83
De acuerdo Re: Asp.Net Con Oracle

ya lo pude lograr, gracias por sus comentarios y aportaciones fueron de mucha ayuda mil gracias
Mafesa83 está desconectado   Responder Citando
Antiguo 08-feb-2008, 02:00   #10 (permalink)
chcma está en el buen camino
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 1.853
Re: Asp.Net Con Oracle

Dinos que fue amigo... asi todos podremos aprender más, ¿No crees?
__________________
Charlie.
chcma está desconectado   Responder Citando
Antiguo 27-abr-2008, 12:15   #11 (permalink)
Mafesa83 no se puede cailificar en este momento
 
Avatar de Mafesa83
 
Fecha de Ingreso: marzo-2007
Ubicación: Villahermosa, Tabasco
Mensajes: 38
Enviar un mensaje por MSN a Mafesa83
Re: Asp.Net Con Oracle

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,
Mafesa83 está desconectado   Responder Citando
Antiguo 27-abr-2008, 12:18   #12 (permalink)
Mafesa83 no se puede cailificar en este momento
 
Avatar de Mafesa83
 
Fecha de Ingreso: marzo-2007
Ubicación: Villahermosa, Tabasco
Mensajes: 38
Enviar un mensaje por MSN a Mafesa83
Re: Asp.Net Con Oracle

Cita:
Iniciado por Javier Santamaria Ver Mensaje
A lo mejor no tiene nada que ver , pero prueba a cambiar esta linea:

Código:
MyCommand.CommandText = "insert into especialidades(cve_especialidades,Nombre)values(Pa ram1,Param2)";
//este comentario es para que no se corte la linea, no hagas caso
Por esta:
Código:
MyCommand.CommandText = "insert into especialidades values (Pa ram1,Param2)";
Si esto no funciona a lo mejor es que no tienes permisos para insertar y por eso te da un eror de operacion no valida.

Ya nos cuentas. Todo el codigo parece estar bien.


Con respecto a la forma de mandar a llamar los parametros no es como me lo planteastes sino mas que bien de la siguiiente forma
ej.
Insert Into from tabla(Campo1, Campo2) Values(:Param1,:Param2);
Mafesa83 está desconectado   Responder Citando
Respuesta
Calificación: Calificación de Tema: 2 votos, 5,00 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 10:17.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93