![]() |
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 [email protected] |
Re: Asp.Net Con Oracle Te da algun error? Cual es el problema?, el codigo parece estar bien. |
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. |
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 |
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 |
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)";Código: MyCommand.CommandText = "insert into especialidades values (Pa ram1,Param2)";Ya nos cuentas. Todo el codigo parece estar bien. |
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. |
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. |
Re: Asp.Net Con Oracle ya lo pude lograr, gracias por sus comentarios y aportaciones fueron de mucha ayuda mil gracias:-) |
Re: Asp.Net Con Oracle Dinos que fue amigo... asi todos podremos aprender más, ¿No crees? |
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, |
Re: Asp.Net Con Oracle Cita:
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); |
| La zona horaria es GMT -6. Ahora son las 19:13. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.