En un post anterior vimos la forma de conectarnos a una base de datos Access con C#, pero de nada nos sirve solo conectarnos, debemos interactuar con la base de datos para agregar registros (INSERT), actualizar datos (UPDATE) y eliminar registro (DELETE),y claro esta debemos ser capaces de extraer información y mostrar esta en pantalla.
Para este ejemplo utilizamos una base de datos Access (dbalumno.mdb) con una tabla llamada Alumno que tiene tres campos: ID autonumerico, nombre y apellido de tipo Texto. Añadimos unos cuantos datos manualmente
A continuación el programa completo en consola con las operaciones INSERT, UPDATE y DELETE, para su mejor comprensión se divide este en diferentes métodos para cada acción que se quiere realizar.
01 using System; 02 using System.Collections.Generic; 03 using System.Linq; 04 using System.Text; 05 using System.Data.OleDb; 06 07 namespace ConAccessOperations 08 { 09 class Program 10 { 11 static OleDbConnection con;//Representa una conexión abierta a un origen de datos 12 static String ds = "E:/dbalumno.mdb"; //direccion de la base de datos Access 13 static String stringConexion = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ds; 14 15 static void Main(string[] args) 16 { 17 conectar(); 18 19 //Se imprimir los registros 20 imprimirRegistros(); 21 //se añaden dos nuevos registros 22 insertar("Jorge","Nitales"); 23 insertar("Elsa", "Pallo"); 24 imprimirRegistros(); 25 //Se actualiza el registro con ID=4 26 actualizar(4,"apellido='Gordito'"); 27 imprimirRegistros(); 28 //Se elimina 29 eliminar(2); 30 imprimirRegistros(); 31 32 desconectar(); 33 Console.WriteLine("Presione cualquier tecla para terminar"); 34 Console.ReadKey(); 35 } 36 37 /** Abre una conexion a la base de datos */ 38 static void conectar() 39 { 40 try 41 { 42 con = new OleDbConnection(@stringConexion); 43 con.Open();//se abre una conexion 44 Console.WriteLine("Conectado a la base de datos."); 45 } 46 catch (System.Exception ex) 47 { 48 Console.WriteLine("ERROR:" + ex.Message); 49 } 50 } 51 52 /** Cierra la conexion a la base de datos */ 53 static void desconectar() 54 { 55 con.Close(); 56 Console.WriteLine("La conexion ha terminado."); 57 } 58 59 /** Extrae registros y los muestra en pantalla */ 60 static void imprimirRegistros() 61 { 62 OleDbCommand cmd = new OleDbCommand(); 63 cmd.Connection = con; 64 cmd.CommandText = @"SELECT Id,nombre,apellido FROM Alumno"; 65 //Ejecuta la instruccion SQL y retorna el resultado 66 OleDbDataReader reader = cmd.ExecuteReader(); 67 Console.WriteLine("-----------------------------------"); 68 //va leyendo los registros y mostrando en pantalla 69 while (reader.Read()) 70 { 71 Console.WriteLine("{0} | {1} | {2}", reader.GetValue(0).ToString(), 72 reader.GetValue(1).ToString(), 73 reader.GetValue(2).ToString()); 74 } 75 Console.WriteLine("-----------------------------------"); 76 reader.Close(); 77 } 78 79 /** Ejecuta un INSERT */ 80 static void insertar(String nombre, String apellido) 81 { 82 OleDbCommand cmd = new OleDbCommand();//Representa una instruccion SQL 83 cmd.Connection = con;//asigna la conexion a la base de datos 84 Console.Write("Insertando registros..."); 85 String query = "INSERT INTO Alumno(nombre,apellido) VALUES('"+nombre+"','"+apellido+"')"; 86 cmd.CommandText = @query;//asigna la instruccion SQL que se ejecutara 87 cmd.ExecuteNonQuery();//ejecuta una instruccion SQL 88 Console.WriteLine("ok"); 89 } 90 91 /** Ejecuta un UPDATE 92 * Id Llave primaria 93 * Set Ej. "Nombre='nuevo valor'" 94 */ 95 static void actualizar(int Id, String Set) 96 { 97 OleDbCommand cmd = new OleDbCommand(); 98 cmd.Connection = con; 99 Console.Write("Actualizando..."); 100 String query = "UPDATE Alumno SET "+Set+" WHERE Id="+Id; 101 cmd.CommandText = @query; 102 cmd.ExecuteNonQuery(); 103 Console.WriteLine("ok"); 104 } 105 106 /** Elimina un registro dado su ID */ 107 static void eliminar(int Id) 108 { 109 OleDbCommand cmd = new OleDbCommand(); 110 cmd.Connection = con; 111 Console.Write("Eliminando..."); 112 String query = "DELETE FROM Alumno WHERE Id="+Id; 113 cmd.CommandText = @query; 114 cmd.ExecuteNonQuery(); 115 Console.WriteLine("ok"); 116 } 117 118 } 119 }
Ejecutamos
enjoy 🙂
Las estructuras de control de Shell son muy parecidos a otras lenguajes de programación. Las estructuras disponibles en[...]
Cuando creamos reportes en iReport que son un poco complicadas o reportes personalizados, osea, tratando de evitar el cl[...]
En este tutorial se explica una forma de crear CD autoejecutable para programas hechos en java asi como para instalar la[...]
En este tutorial veremos un poco lo que es el diseño de interfaces en android, en lugar de colocar el ejemplo de uso de[...]
Continuando con estos post de Cliente/Servidor, en esta oportunidad realizaremos un ejemplo usando un dispositivo móvil[...]
Cuando se crean aplicaciones android o cualquier otro tipo de software, es importante dejar información del o los desarr[...]