public static Titulo GetTitulo(int id)
        {
            conn.Open();

            string sql = String.Format("SELECT * FROM Titulos WHERE Id = {0}", id);
            SqlCommand command = new SqlCommand(sql, conn);
            var reader = command.ExecuteReader();

            Titulo titulo = new Titulo ();

            while (reader.Read())
            {
                titulo.id = (int)reader["Id"];
                titulo.titulo = reader["titulo"].ToString();
            }

            conn.Close();

            return titulo;
        }
        public static List<Titulo> GetAllTitulos()
        {
            conn.Open();

            string sql = "SELECT * FROM Titulos";
            SqlCommand command = new SqlCommand(sql, conn);
            var reader = command.ExecuteReader();

            var titulos = new List<Titulo>();
            while (reader.Read())
            {
                Titulo titulo = new Titulo ();
                titulo.id = (int)reader["id"];
                titulo.titulo= reader["titulo"].ToString();

                titulos.Add(titulo);
            }

            conn.Close();

            return titulos;
        }
        public static bool InsertTitulo(Titulo titulo)
        {
            try {
                conn.Open ();
            } catch (Exception ex) {
                return false;
            }

            string sql = "INSERT INTO Titulos (titulo) output INSERTED.ID VALUES (@titulo)";
            SqlTransaction trans = null;
            int res = 0;

            try {
                trans = conn.BeginTransaction ();
                SqlCommand command = new SqlCommand (sql, conn);
                command.Parameters.Add (new SqlParameter ("@titulo", titulo.titulo));
                res = (int) command.ExecuteScalar ();

                foreach (int idGenero in titulo.idsGenero) {
                    sql = String.Format ("INSERT INTO TituloGenero (id_titulo, id_genero) VALUES ({0}, {1})", res, idGenero);
                    command = new SqlCommand (sql, conn);
                    command.ExecuteNonQuery ();
                }

                trans.Commit ();
                command.Dispose ();
            } catch (Exception ex) {
                if (trans == null) {
                    trans.Rollback ();
                }
            } finally {
                if (conn.State == System.Data.ConnectionState.Open) {
                    conn.Close ();
                }
            }

            return (res > 0);
        }
        public static bool UpdateTitulo(int id, Titulo titulo)
        {
            conn.Open();

            string sql = String.Format ("UPDATE Titulos SET titulo = @titulo WHERE Id = {0}", id);
            SqlCommand command = new SqlCommand(sql, conn);
            command.Parameters.Add(new SqlParameter("@titulo", titulo.titulo));

            int res = command.ExecuteNonQuery ();

            conn.Close ();

            return res == 1;
        }