oracle y c#
DESCRIPTION
Una manera muy rapida de utilizar stored procedures, puedes encontrar mas ejemplos en: http://plsqlags.blogspot.comTRANSCRIPT
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
http://plsqlags.blogspot.com
Nueva Tabla• Click derecho en nuestra conexión y presionamos New
Table
http://plsqlags.blogspot.com
Creando Columnas de la Tabla
• Insertamos las Columnas necesarias, en esta ocasión 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
Insertar este codigo SQL
Parametros declarados
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 librería 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
• 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)
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: