oracle y c#

14
http://plsqlags.blogspot. com 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

Upload: plsqlags

Post on 12-Jun-2015

11.054 views

Category:

Technology


3 download

DESCRIPTION

Una manera muy rapida de utilizar stored procedures, puedes encontrar mas ejemplos en: http://plsqlags.blogspot.com

TRANSCRIPT

Page 1: Oracle Y C#

http://plsqlags.blogspot.com

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

Page 2: Oracle Y C#

http://plsqlags.blogspot.com

Nueva Tabla• Click derecho en nuestra conexión y presionamos New

Table

Page 3: Oracle Y C#

http://plsqlags.blogspot.com

Creando Columnas de la Tabla

• Insertamos las Columnas necesarias, en esta ocasión usaremos las siguientes:

• RFC, NAME y AGE

Page 4: Oracle Y C#

http://plsqlags.blogspot.com

Creando Stored Procedure

• Hacemos click en la ventana Stored procedure

Page 5: Oracle Y C#

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

Page 6: Oracle Y C#

http://plsqlags.blogspot.com

Creando Stored Procedure

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

Carpeta con Stored Procedures

Nuevo procedimiento

Page 7: Oracle Y C#

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

Insertar este codigo SQL

Parametros declarados

Page 8: Oracle Y C#

http://plsqlags.blogspot.com

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

Page 9: Oracle Y C#

http://plsqlags.blogspot.com

• Crear un nuevo proyecto llamado OracleSample1

Page 10: Oracle Y C#

http://plsqlags.blogspot.com

• Agregar una referencia a la librería Oracle Data Access

Page 11: Oracle Y C#

http://plsqlags.blogspot.com

• Invocamos las librerias de acceso a Datos• using Oracle.DataAccess.Client;• using Oracle.DataAccess.Types;

Page 12: Oracle Y C#

http://plsqlags.blogspot.com

• Creamos la conexión, objeto command, parameters

static void Main(string[] args)

{

try

{

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);

} }

• Nombre Stored Procedure en la base

• OracleCommand MyCMD = new

OracleCommand("SP_NEWRFC", MyConn);

• 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

• En caso de error, mostrara la descripcion de la excepcion “Error: ” + m

• Es de tipo excepion( Exception m)

Page 13: Oracle Y C#

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

Page 14: Oracle Y C#

http://plsqlags.blogspot.com

• Preguntas:

[email protected][email protected]