13 de mayo de 2011

Insertar, Mostrar, Actualizar y Eliminar (Aplicacion C# para el SGBD Oracle)..

En temas  anteriores explicamos las sintaxis basicas de SGBD Oracle, pero  ahora la pregunta es: ¿Para que me servira una base de datos  en Oracle en mi Empresa con esta estructura?, ¿Como hare  para manipular los datos sin complicaciones?. Para explotar la base de datos necesitamos una Aplicacion con una Interfaz Grafica.
  En este ejemplo vamos a aprender a realizar las operaciones basicas que toda Aplicacion necesita para poder administrar una base de datos como Oracle.
  Bien, empezamos.
Esta  es la tabla de la practica anterior:

Creamos un  nuevo proyecto en C#.
El diseño  de nuestra aplicacion quedaria mas o menos como este para trabajar  con la tabla Proveedores de la base de datos Oracle.
Para poder conectar de C# a Oracle necesitamos la referencia System.Data.OracleClient en nuestro proyecto, para agregar  esta referencia haremos los iguiente   en C#:  menu Ver > Examinador de Objetos y  abre la ventana que muestra en la imagen, buscamos esta referencia y agregamos a nuestro proyecto. Para agregar ubicamos en la parte superior un signo + de color amarillo, seleccionamos la referencia y despues clic en el  signo  mas.

En el explorador de soluciones aparece la referencia, es decir se ha agregado.
Ubicamos donde estan las librerias y agregamos la using System.Data.OracleClient; para que funcione la aplicacion.
Luego la cadena de Conexion, 
 "Data Source=XE; User ID=RICHARD; Password=RICHARD; Unicode=True"
Donde:
XE es la base de datos predeterminado de Oracle, siempre sera  la misma, al menos de que quieres cambiarlo o personalizarlo.
ID: RICHARD es el Nombre de Usuario que usamos para conectar  en Oracle.
Pass: RICHARD es la contraseña de usuario RICHARD  para conectar  en Oracle.
La ultima parte es Opcional.

Este codigo va en el boton Mostrar, muestra los datos de la tabla Proveedores en un DatagridView.


El codigo se ubica en el boton Insertar, para insertar un nuevo registro en la tabla Proveedores.


En el boton Actualizar, para actualizar un registro o lo mismo decir modificar/cambiar  de valor un registro que ya esta guardado en la base de datos.

Va en el boton Eliminar, dar de baja un registro, de la tabla Proveedores.

Codigo Fuente Completo.
Aplicacion final en C#.
Tabla Proveedores en Oracle.

Para mejorar la Aplicacion lo mas adecuado es usar la POO(Programacion Orientado a Objectos). Nos permitira optimizar el codigo. Otra opcion y la  mas eficiente es usar Procedimientos alamcenados.
Mas información enviar un Email a RHG8708@HOTMAIL.COM

15 comentarios:

  1. hola interesante todo pero cuando lo ejecuto me sale un errorOra-12154 si me pudieras ayudar gracias

    ResponderEliminar
  2. REVISA EL DIRECTORIO DE TUS PROGRAMAS, DESDE DONDE LO ESTAS EJECUTANDO
    PORQUE SE DEBE DE EJECUTAR DESDE LA CARPETA DE VISUAL (PROJECTS).

    ResponderEliminar
  3. hola necesito el codigo de los botones insertar,modificar,guaradar y nuevo pero en c#

    ResponderEliminar
  4. holaa.Richard
    todo esta muy bien pero lo necesito con el SGBD MySQL, puedes ayudarme???
    saludos.

    ResponderEliminar
  5. Necesito el codigo, pero en C#. me podrias ayudar???

    ResponderEliminar
  6. ME SALE ERROR system.data.oracleclient requiere la version 8.1.7 sabes a q se debe esto GRACIAS de antemano

    ResponderEliminar
    Respuestas
    1. Hola Chiosito, tengo el mismo problema "system.data.oracleclient requiere la version 8.1.7" como lo solucionaste... este sistemita corria muy bien en agosto 2013, hoy lo corri y me arroja ese error... como lo solucionaste? de ante mano muchas gracias

      Eliminar
    2. Para los que siguen teniendo probelmas de system.data.oracleclient requiere la version 8.1.7, se necesita instalar el ODAC si lo están ejecutando desde makina cliente a server donde esta instalado el Oracle

      Eliminar
  7. en el ultimo catch de eliminar le pusiste en el messagebox un +error.message

    da un error de codigo ay qe sacarselo y ya.

    ResponderEliminar
  8. Te comento que la entrada del blog escribi hace dos años, justo hoy lo revise y los codigos publicados tienen detalles, sin embargo no ecuentro el error que indicas de mesaggebox(...), si ocurre un error dentro del método es un excepcion generico y simplemente lo concantena con el texto y lo imprime en pantalla. me gustaria ver el exactamente tu error. Ahora mi recomendacion es cambiar todo a POO como se muestra en el sigiente ejemplo:

    public class Oracle
    {
    string _error;
    public string Error
    {
    get { return _error; }
    }
    private string _conexion;

    public Oracle(string conexion)
    {
    try
    {
    _conexion = conexion;
    }
    catch (Exception)
    {

    throw;
    }
    }

    public DataTable ConsultarX(string tabla,out bool exito)
    {
    try
    {
    exito = true; //inicializo con true, si todo sale bien no cambia
    DataTable dt = null;
    OracleDataAdapter data = null;
    using (OracleConnection con = new OracleConnection(_conexion))//siempre es recomendble usar using, al terminar la ejecucion lo cierra la conexion. no es necesario cerrarlo con una linea de codigo
    {
    con.Open();
    OracleCommand com = new OracleCommand("SELECT *FROM " + tabla + "", con);
    data = new OracleDataAdapter(com);
    dt = new DataTable();
    data.Fill(dt);
    }
    return dt;

    }
    catch (Exception ex)
    {
    _error = ex.Message;//gaurdo el error
    exito = false; //cambio a false
    return null;
    }
    }
    }

    ResponderEliminar
  9. no me inserta datos me da como mensaje sintaxis incorreta

    ResponderEliminar
  10. Disculpa cuando quiero insertar una nueva fila me sale ERROR DE SISTEMA, sabes a que se puede deber eso ??

    ResponderEliminar