C# SQLiteBook: Catalogo de libros con SQLite (II)

Partiendo del post C# SQLiteBook: Catalogo de libros con SQLite (I) donde se creo una BD con SQLiteConnection  para guardar en la tabla books registros de un catálogo de libros usando  SQLiteCommand y sentencias INSERT SQL.

Ahora vamos a ver como realizar consultas SELECT sobre la misma tabla para leer los registros.

La primera parte del programa es igual que el anterior, consiste en usar el objeto  SQLiteConnection (pasandole la cadena de conexión al constructor) para abrir la conexión con la BD usando el método Open().

Luego utiliza el objeto  SQLiteCommand como antes pero para lanzar una consulta SELECT que retorne todos los registros de la tabla books.

El resultado de la consulta se almacena en una variable que contiene una instancia de la clase  SQLiteDataReader (ojo que no llama a constructor sino que se crea la instancia directamente usando la llamada  ExecuteReader de SQLiteCommand). Podemos consultar la sintaxis en MSDN Clase SqlDataReader.

A continuación vamos llamando al método Read() para ir leyendo de forma secuencial registros de la consulta. El método Read avanza el lector al siguiente registro, retorna TRUE si existen más registros. Podemos obtener los valores del registro que están almacenados en un Array usando índices numéricos o el nombre de columna (más adecuado), en el ejemplo se usan índices numéricos y convierte los valores a cadena usando el objeto Convert.

Enlaces relacionados:


 /*
  * Created by SharpDevelop.
  * User: i.landajuela
  * Date: 29/08/2016
  * Time: 14:47
  * 
  * To change this template use Tools | Options | Coding | Edit Standard Headers.
  */
 using System;
 using System.Data.SQLite;
 
 namespace SQLiteBookReader
 {
     class Program
     {
         public static void Main(string[] args)
         {
             try {
                 SQLiteConnection conexion = new SQLiteConnection 
                     ("Data Source=ejemplo01.sqlite;Version=3;New=False;Compress=True;");            
             
                  conexion.Open();
                  
                  // Lanzamos la consulta y preparamos la estructura para leer datos             
                 string consulta = "select * from books";
                 SQLiteCommand cmd = new SQLiteCommand(consulta, conexion);
                 SQLiteDataReader datos = cmd.ExecuteReader();
                 // Leemos los datos de forma repetitiva 
 
                 Console.WriteLine("Nº campos registros: "+datos.FieldCount);
                 
                 if (datos.HasRows) 
                 {
                     Console.WriteLine("La consulta retorna registros");
                 }
                 
                 while (datos.Read())
                 {
                     // Usamos objeto Convert 
                     string name = Convert.ToString(datos[0]);
                     string autor = Convert.ToString(datos[1]);
                     string genre = Convert.ToString(datos[2]);
                     string summary = Convert.ToString(datos[3]);
 
                     // Y los mostramos 
                     System.Console.WriteLine("Name: {0}, Autor: {1}, Genre: {2}, Summary: {3}",
                         name, autor, genre, summary);
                 }
                 // Finalmente, cerramos la conexion 
                 conexion.Close();
             
             } catch (Exception e) {
                     Console.WriteLine("{0} Exception caught.", e);
                     Console.Write("Press any key to exit . . . ");
                     Console.ReadKey(true);
                     return;
             }            
             
             Console.Write("Press any key to continue . . . ");
             Console.ReadKey(true);
         }
     }
 }

 

 

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s