public List <Producto> verRegistro()
        {
            ConnectorSQLite.CreateTable();
            List <Producto>  Productos = new List <Producto>();
            SQLiteConnection conn      = ConnectorSQLite.CreateConnection();
            SQLiteCommand    command;
            SQLiteDataReader reader;

            command = conn.CreateCommand();

            command.CommandText = "select * from Producto";
            try
            {
                reader = command.ExecuteReader();
                while (reader.Read())
                {
                    Productos.Add(new Producto(
                                      reader.GetInt32(0),
                                      reader.GetString(1),
                                      reader.GetInt32(2),
                                      reader.GetBoolean(3),
                                      reader.GetString(4),
                                      reader.GetString(5),
                                      reader.GetInt32(6),
                                      reader.GetBoolean(7)
                                      ));
                }
            }
            catch (SQLiteException e)
            {
                System.Windows.Forms.MessageBox.Show(e.ToString());
            }
            conn.Close();
            return(Productos);
        }
        public List <Producto> filtrar(string buscar)
        {
            List <Producto>  Productos = new List <Producto>();
            SQLiteConnection conn      = ConnectorSQLite.CreateConnection();
            SQLiteCommand    command;
            SQLiteDataReader reader;

            command             = conn.CreateCommand();
            command.CommandText = "select * from Producto where Nombre Like '" + buscar + "%'";
            reader = command.ExecuteReader();
            while (reader.Read())
            {
                Productos.Add(new Producto(
                                  reader.GetInt32(0),
                                  reader.GetString(1),
                                  reader.GetInt32(2),
                                  reader.GetBoolean(3),
                                  reader.GetString(4),
                                  reader.GetString(5),
                                  reader.GetInt32(6),
                                  reader.GetBoolean(7)
                                  ));
            }
            conn.Close();
            return(Productos);
        }
        public DataSet dataSet()
        {
            DataSet           ds = new DataSet();
            SQLiteDataAdapter da = new SQLiteDataAdapter("select * from Producto", ConnectorSQLite.CreateConnection());

            da.Fill(ds);
            return(ds);
        }
        public DataTable dataSet()
        {
            DataTable         ds = new DataTable();
            SQLiteDataAdapter da = new SQLiteDataAdapter("select * from Categoria", ConnectorSQLite.CreateConnection());

            da.Fill(ds);
            return(ds);
        }
        public void eliminar(Producto producto)
        {
            SQLiteConnection conn = ConnectorSQLite.CreateConnection();
            SQLiteCommand    sqliteCommand;

            sqliteCommand             = conn.CreateCommand();
            sqliteCommand.CommandText = "DELETE FROM Producto WHERE IdProducto = " + producto.Id + ";";
            sqliteCommand.ExecuteNonQuery();
            conn.Close();
        }
        public void eliminar(Categoria categoria)
        {
            SQLiteConnection conn = ConnectorSQLite.CreateConnection();
            SQLiteCommand    sqliteCommand;

            sqliteCommand             = conn.CreateCommand();
            sqliteCommand.CommandText = "DELETE FROM Categoria WHERE IdCategoria = " + categoria.Id + ";";
            sqliteCommand.ExecuteNonQuery();
            conn.Close();
        }
        public void modificar(Categoria categoria)
        {
            SQLiteConnection conn = ConnectorSQLite.CreateConnection();
            SQLiteCommand    sqliteCommand;

            sqliteCommand             = conn.CreateCommand();
            sqliteCommand.CommandText = "UPDATE Categoria set Nombre = '" + categoria.Nombre + "', Estado = " + categoria.Estado + " WHERE IdCategoria = " + categoria.Id + ";";
            sqliteCommand.ExecuteNonQuery();
            conn.Close();
        }
        public void agregar(Categoria categoria)
        {
            SQLiteConnection conn = ConnectorSQLite.CreateConnection();
            SQLiteCommand    sqliteCommand;

            sqliteCommand             = conn.CreateCommand();
            sqliteCommand.CommandText = "INSERT INTO Categoria( Nombre, Estado) VALUES ('" + categoria.Nombre + "', " + categoria.Estado + ");";
            sqliteCommand.ExecuteNonQuery();
            conn.Close();
        }
        //
        public static void CreateTable()
        {
            SQLiteCommand sqliteCommand;
            string        createSQL = @"
            CREATE TABLE 'Categoria' (
                'IdCategoria'   INTEGER,
	            'Nombre'    TEXT,
	            'Estado'    INTEGER,
	             PRIMARY KEY('IdCategoria' AUTOINCREMENT)
            );
            CREATE TABLE 'Producto' ( 
                'IdProducto'    INTEGER,	
                'Nombre'    TEXT,	
                'Codigo'    INTEGER,	
                'Stock' INTEGER,	
                'Fecha_vencimiento' TEXT,
	            'Descripcion'   TEXT,
	            'Categoria' INTEGER,
	            'Estado'    INTEGER,
            PRIMARY KEY('IdProducto' AUTOINCREMENT),
            FOREIGN KEY('Categoria') REFERENCES Categoria(IdCategoria) 
            );
			
			INSERT INTO Categoria(Nombre, Estado) VALUES
                ('Categoria 1', 1), 
                ('Categoria 2', 1), 
                ('Categoria 3', 1), 
                ('Categoria 4', 1), 
                ('Categoria 5', 1) ;         
            INSERT INTO Producto( Nombre, Codigo, Stock, Fecha_vencimiento, Descripcion, Categoria, Estado) VALUES 
                ('Producto 1', 1234, 1, 'miércoles, 17 de marzo de 2021', 'Descripcion de producto', 1, 0),
                ('Producto 2', 1235, 1, 'miércoles, 17 de marzo de 2021', 'Descripcion de producto', 2, 0),
                ('Producto 3', 1236, 1, 'miércoles, 17 de marzo de 2021', 'Descripcion de producto', 1, 0),
                ('Producto 4', 1237, 0, 'miércoles, 17 de marzo de 2021', 'Descripcion de producto', 4, 0),
                ('Producto 5', 1238, 1, 'miércoles, 17 de marzo de 2021', 'Descripcion de producto', 5, 0),
                ('Producto 6', 1240, 1, 'miércoles, 17 de marzo de 2021', 'Descripcion de producto', 4, 0),
                ('Producto 7', 1241, 1, 'miércoles, 17 de marzo de 2021', 'Descripcion de producto', 2, 0),
                ('Producto 8', 1242, 1, 'miércoles, 17 de marzo de 2021', 'Descripcion de producto', 3, 0);";

            sqliteCommand             = ConnectorSQLite.CreateConnection().CreateCommand();
            sqliteCommand.CommandText = createSQL;
            try
            {
                sqliteCommand.ExecuteNonQuery();
            }
            catch
            {
            }
        }
        public void agregar(Producto producto)
        {
            SQLiteConnection conn = ConnectorSQLite.CreateConnection();
            SQLiteCommand    sqliteCommand;

            sqliteCommand             = conn.CreateCommand();
            sqliteCommand.CommandText = @"INSERT INTO Producto( Nombre, Codigo, Stock, Fecha_vencimiento, Descripcion, Categoria, Estado) VALUES (" +
                                        "'" + producto.Nombre + "', " +
                                        "" + producto.Codigo + ", " +
                                        "" + producto.Stock + ", " +
                                        "'" + producto.FechaVencimiento + "', " +
                                        "'" + producto.Descripcion + "', " +
                                        "" + producto.Categoria + ", " +
                                        "" + producto.Estado + ");";
            sqliteCommand.ExecuteNonQuery();
            conn.Close();
        }
        public void modificar(Producto producto)
        {
            SQLiteConnection conn = ConnectorSQLite.CreateConnection();
            SQLiteCommand    sqliteCommand;

            sqliteCommand             = conn.CreateCommand();
            sqliteCommand.CommandText = @"UPDATE Producto set 
                                            Nombre = '" + producto.Nombre + "'," +
                                        "Codigo = " + producto.Codigo + "," +
                                        "Stock = " + producto.Stock + "," +
                                        "Fecha_vencimiento = '" + producto.FechaVencimiento + "'," +
                                        "Descripcion = '" + producto.Descripcion + "'," +
                                        "Categoria = " + producto.Categoria + "," +
                                        "Estado = " + producto.Estado + " " +
                                        "WHERE IdProducto = " + producto.Id + ";";
            sqliteCommand.ExecuteNonQuery();
            conn.Close();
        }
        public List <Categoria> filtrar(Categoria categoria)
        {
            List <Categoria> Categorias = new List <Categoria>();
            SQLiteConnection conn       = ConnectorSQLite.CreateConnection();
            SQLiteCommand    command;
            SQLiteDataReader reader;

            command             = conn.CreateCommand();
            command.CommandText = "select * from Categoria where Nombre Like '" + categoria.Nombre + "%'";
            reader = command.ExecuteReader();
            while (reader.Read())
            {
                Categorias.Add(new Categoria(
                                   reader.GetInt32(0),
                                   reader.GetString(1),
                                   reader.GetBoolean(2)
                                   ));
            }
            conn.Close();
            return(Categorias);
        }
        public List <Categoria> verRegistro()
        {
            ConnectorSQLite.CreateTable();
            List <Categoria> Categorias = new List <Categoria>();
            SQLiteConnection conn       = ConnectorSQLite.CreateConnection();
            SQLiteCommand    command;
            SQLiteDataReader reader;

            command             = conn.CreateCommand();
            command.CommandText = "select * from Categoria";
            reader = command.ExecuteReader();
            while (reader.Read())
            {
                Categorias.Add(new Categoria(
                                   reader.GetInt32(0),
                                   reader.GetString(1),
                                   reader.GetBoolean(2)
                                   ));
            }
            conn.Close();
            return(Categorias);
        }
 public ProductoDao()
 {
     ConnectorSQLite.CreateTable();
 }
 public CategoriaDao()
 {
     ConnectorSQLite.CreateTable();
 }