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

SQLite es un sistema de gestión de base de datos empotrada en la propia aplicación mediante librerías, esto lo convierte en altamente portable entre máquinas ya que no dependemos de servidores de bases de datos externos y las tablas se guardan en ficheros (ver más en SQLite Base de datos embebida para C).

En SharpDevelop para poder usar SQLite debemos añadir el paquete primero. En el menú seleccionamos Project > Manage Packages.

sharp11

Una vez instalado ya podemos incluirlo en nuestra aplicación:

using System;
using System.Data.SQLite;
using System.IO; 

Antes de poder empezar a trabajar con la BD (Base de Datos) debemos conectar con ella usando el objeto  SQLiteConnection  en una variable. Cuando llamamos al constructor debemos proporcionarle la cadena de conexión con el fichero que contiene la BD entre otros parámetros, después de instanciar el objeto en la variable que contiene la conexión llamamos al método Open() para comenzar a trabajar con la BD.


SQLiteConnection conexion; conexion = new SQLiteConnection

("Data Source=ejemplo01.sqlite;Version=3;New=True;Compress=True;");

conexion.Open();

En la mayoría de los casos trabajaremos sobre una BD ya creada pero si es la primera que vez que ejecutamos la aplicación normalmente el fichero con la BD no existirá y debemos ejecutar sentencias SQL adicionales para crear las tablas usando la clase SQLiteCommand.

 if (!File.Exists("ejemplo01.sqlite"))
             {
                 string creacion = "create table books ("
                 + " title varchar(50),autor varchar(50),genre varchar(50), summary varchar(50));";
                 cmd = new SQLiteCommand(creacion, conexion);
                 cmd.ExecuteNonQuery();
             }

A continuación dejamos el código completo con las sentencias insert en la BD con los datos introducidos por el usuario (usando la variable cmd de tipo SQLiteCommand con sentencias Insert SQL).

Cuando acabamos de trabajar con la BD debemos cerrar la conexión de forma explicita con el método Close() de  SQLiteCommand .

 /*
  * Created by SharpDevelop.
  * User: i.landajuela
  * Date: 28/08/2016
  * Time: 4:09
  * 
  * To change this template use Tools | Options | Coding | Edit Standard Headers.
  */
 using System;
 using System.Data.SQLite;
 using System.IO;
 
 namespace SQLiteBook
 {
     class Program
     {
         public static void Main(string[] args)
         {
             SQLiteConnection conexion; //Clase para establecer conexión inicial
             SQLiteCommand cmd; //Clase para ejecutar sentencias
             
             try
             {
             
                 conexion = new SQLiteConnection
                     ("Data Source=ejemplo01.sqlite;Version=3;New=True;Compress=True;");
                 conexion.Open();    
             
                 if (!File.Exists("ejemplo01.sqlite"))
                 {
                     string creacion = "create table books ("
                         + " title varchar(50),autor varchar(50),genre varchar(50), summary varchar(50));";
                     cmd = new SQLiteCommand(creacion, conexion);
                     cmd.ExecuteNonQuery();
                 }
             
                 string line;
                 string title = "",
                    autor = "",
                    genre = "",
                    summary = "";
                 do
                 {
                     Console.Write("Title: ");
                     line = Console.ReadLine();
                     if (line != null)
                         title = line;
 
                     Console.Write("Autor: ");
                     line = Console.ReadLine();
                     if (line != null)
                         autor = line;
 
                     Console.Write("Genre: ");
                     line = Console.ReadLine();
                     if (line != null)
                         genre = line;
 
                     Console.Write("Summary: ");
                     line = Console.ReadLine();
                     if (line != null)
                         summary = line;
 
                     string insercion = "insert into books values ('" + title +
                         "', '" + autor + "','" + genre + "', '" + summary + "')";
 
                     cmd = new SQLiteCommand(insercion, conexion);
                     cmd.ExecuteNonQuery();
 
                     Console.WriteLine("Insert OK!");
                 }
                 while (line != null);
             
                 conexion.Close();
              }
             catch (Exception e)
             {
                 Console.WriteLine("Error" + e.Message);
             }
             
             Console.Write("Press any key to continue . . . ");
             Console.ReadKey(true);
         }
     }
 } 

 

Artículos relacionados:

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