You are on page 1of 14

Oracle y C#

Vamos a generar paso a paso una tabla, un stored procedure y un programita en C# para insertar una fila en Oracle 10 Estaremos utilizando SQL developer, Oracle 10g Express y Visual Studio 2005

http://plsqlags.blogspot.com

Nueva Tabla
Click derecho en nuestra conexin y presionamos New Table

http://plsqlags.blogspot.com

Creando Columnas de la Tabla


Insertamos las Columnas necesarias, en esta ocasin usaremos las siguientes: RFC, NAME y AGE

http://plsqlags.blogspot.com

Creando Stored Procedure


Hacemos click en la ventana Stored procedure

http://plsqlags.blogspot.com

Creando Stored Procedure


Escribimos un nombre al Stored Procedure, despues presionamos el signo de mas(una cruz verde) e ingresamos 3 parametros

Nombre Stored Procedure


Agregamos 3 parametros

http://plsqlags.blogspot.com

Creando Stored Procedure


Al dar aceptar, podemos ver stored procedure en la carpeta procedures

Carpeta con Stored Procedures


Nuevo procedimiento

http://plsqlags.blogspot.com

Ingresando Codigo SQL


Hacemos click y vamos a ver el interior del stored procedure, Es necesario agregar el codigo SQL

Nombre Parametros declarados Insertar este codigo SQL

http://plsqlags.blogspot.com

Trabajando con Visual Studio 2005, C# y Oracle 10g

http://plsqlags.blogspot.com

Crear un nuevo proyecto llamado OracleSample1

http://plsqlags.blogspot.com

Agregar una referencia a la librera Oracle Data Access

http://plsqlags.blogspot.com

Invocamos las librerias de acceso a Datos


using Oracle.DataAccess.Client; using Oracle.DataAccess.Types;

http://plsqlags.blogspot.com


{ try {

Creamos la conexin, objeto command, parameters

static void Main(string[] args)

String StrConn = "provider=MSDAORA;data source=ORCL;user id=hr;password=tiger"; OracleConnection MyConn = new OracleConnection(); MyConn.ConnectionString = "User Id=hr;Password=lanaxdos;Data Source=;" + "Min Pool Size=10;Connection Lifetime=120;Connection Timeout=60;" + "Incr Pool Size=5; Decr Pool Size=2"; OracleCommand MyCMD = new OracleCommand("SP_NEWRFC", MyConn); MyCMD.CommandType = System.Data.CommandType.StoredProcedure; MyCMD.Parameters.Add(new OracleParameter("@RFC", DATE479852")); MyCMD.Parameters.Add(new OracleParameter("@NAME", DANIEL")); MyCMD.Parameters.Add(new OracleParameter("@AGE", "26")); MyConn.Open(); MyCMD.ExecuteNonQuery(); Console.WriteLine("Registro insertado"); Console.Read(); } catch (Exception m) { Console.WriteLine("Error: " } } + m);
En caso de error, mostrara la descripcion de la excepcion Error: + m Es de tipo excepion( Exception m) Parametros deben ser iguales a los de la base Despues del nombre de parametro va el valor, esto puede ser sbstituido por valores en cajas de texto, variables, etc. Se recomienda usar parametros para evitar SQL Injection Nombre Stored Procedure en la base

OracleCommand MyCMD = new OracleCommand("SP_NEWRFC", MyConn);

http://plsqlags.blogspot.com

Ejecutamos y si todo sale bien nos despliega un mensaje No es tan complicado usar stored procedures desde C# Al programar aplicaciones en 3 capas es muy comodo y eficiente trabajar con: Logica de Negocios Acceso a Datos(Back End) Presentacion(Front End) Todo por separado

http://plsqlags.blogspot.com

Preguntas:

Enrique.davila@gmail.com Plsqlags@gmail.com

http://plsqlags.blogspot.com