Como Acceder desde C a una BD Ejemplo
Como Acceder desde C# a una BD Ejemplo en Access
Introducción Hasta ahora hacíamos persistir a los datos de un programa en archivos de texto. Pero ya aprendimos a crear una base de datos para guardar la información estructuradamente!! ¿Pero como hacemos para acceder desde c# a una base de datos creada en Microsoft Access?
Acceso a BD desde C# En principio lo que necesitamos es un proveedor que sepa interpretar el «lenguaje» de la Base de Datos y el de C#. Algo así como un traductor. Para este caso usaremos Microsoft. Jet. Ole. DB. 4. 0
Acceso a BD desde C# Creo la conexión a la base de datos string Proveedor = @"Provider=Microsoft. Jet. OLEDB. 4. 0; Data Source=C: Biblioteca. mdb"; Ole. Db. Connection conn = new Ole. Db. Connection(); Connection. String = Proveedor; Conn. Open();
Acceso a BD desde C# Creo el comando para ejecutar la consulta desde C# Ole. Db. Command command = conn. Create. Command(); command. Command. Type = Command. Type. Text; command. Command. Text = "SELECT Autor. Nombre AS Nombre. Autor, Autor. Apellido AS Apellido. Autor FROM Autor"; O command. Command. Type = Command. Type. Store. Procedure; command. Command. Text = “Consultar. Actor"; Consultas de accion command. Command. Type = Command. Type. Text; command. Command. Text = “DELETE FROM Autor WHERE Id=5"; O command. Command. Type = Command. Type. Store. Procedure; command. Command. Text = “Eliminar. Actor";
Acceso a BD desde C# Parametros Una consulta puede recibir parametros. Ole. Db. Parameter Par. Marca = new Ole. Db. Parameter("PMarca", txt. Marca. text); Ole. Db. Parameter Par. Articulo = new Ole. Db. Parameter("PArticulo", Convert. to. Int 32(txt. Articulo. text)); Ole. Db. Parameter Par. Fecha = new Ole. Db. Parameter("PFecha", "01/01/2009"); command. Parameters. Add(Par. Marca); command. Parameters. Add(Par. Articulo); command. Parameters. Add(Par. Fecha);
Acceso a BD desde C# Ahora… Como ejecuto una consulta? Depende del tipo de consulta. Consulta de Accion command. Execute. Non. Query(); Consulta de Selección Los puedo cargar en un data reader y recorrerlo (1) Los puedo cargar en un dataset y agregarlo a un control (por ejemplo una grilla) (2) ¿¿¿¿COMO? ?
Acceso a BD desde C# 1. Ole. Db. Data. Reader reader = command. Execute. Reader(); while (reader. Read()) { string nombre = reader["Nombre. Autor"]. To. String(); string apellido = reader[1]. To. String(); Message. Box. Show(nombre + " " + apellido); } 2. Ole. Db. Data. Adapter adap = new Ole. Db. Data. Adapter(); adap. Select. Command = command; Data. Set ds. Datos = new Data. Set(); adap. Fill(ds. Datos, “Nombre. Consulta”); this. dtg. Datos. Data. Member = "Nombre. Consulta"; this. dtg. Datos. Data. Source = ds. Datos;
Acceso a BD desde C# Si en un punto del programa ocurre una excepción se pueden hacer dos cosas: Atrapar el error y manejarlo. No hacer nada y dejar que la excepción finalice lo que estaba haciendo. ¿Como lo atrapamos? public void button 1_click(object sender, Event. Args e) { Persona p 1 = new Persona(); Persona p 2 = new Persona(); try { Persona el. Mayor = Edades. Quien. Es. Mayor(p 1, p 2); Message. Box. Show(“El mayor es ” + el. Mayor. Nombre); } catch (Exception la. Excepcion) { Message. Box. Show(“Ocurrió un error: ” + la. Excepcion. Message); } }
Acceso a BD desde C# El concepto del manejo de excepciones es tan simple como poderoso: Uno “trata” (try) de ejecutar un bloque de código Si hay un error lo “atrapa” (catch) permitiéndonos manejarlo de forma adecuada. Si no, el programa sigue ejecutando de forma normal Otro mini ejemplo puede ser try { int. Edad = Convert. To. Int 32(txt. Edad. text); } catch (Exception la. Excepcion) { Message. Box. Show(“La edad ingresada no es numerica”); }
Acceso a BD desde C# Situaciones donde hay que manejar errores Parsing (convertir texto a Date. Time, int, etc. . . ) Escribir y leer de archivos (pueden no existir, no haber permisos, etc. . . ) Conectarnos por red (o incluso de forma local) con sistemas externos (¡Como Twitter!) Y muchos mas.
- Slides: 11