Пример #1
0
        public override void Fill(int Reference)
        {
            if (Reference == 0)
            {
                return;
            }
            using (new WaitCursor())
                using (IDbCommand cmd = BDPPCDatabase.getCommand())
                {
                    cmd.CommandText = "SELECT REFSERIE, TITRESERIE, TERMINEE, SUJETSERIE, REMARQUESSERIE, SITEWEB, S.REFEDITEUR, S.REFCOLLECTION, NOMCOLLECTION "
                                      + "FROM SERIES S LEFT JOIN COLLECTIONS C ON S.REFCOLLECTION = C.REFCOLLECTION "
                                      + "WHERE REFSERIE = ?";
                    cmd.Parameters.Add(BDPPCDatabase.getParameter("@refserie", Reference));
                    using (IDataReader result = cmd.ExecuteReader())
                        using (BaseDataReader dataReader = new BaseDataReader(result, this.GetType()))
                            if (result != null && result.Read())
                            {
                                dataReader.loadData(this);
                                Terminee = dataReader.GetInt(2, -1);
                                Editeur.Fill();
                            }

                    cmd.CommandText = "SELECT REFALBUM, TITREALBUM, INTEGRALE, HORSSERIE, TOME, TOMEDEBUT, TOMEFIN, REFSERIE "
                                      + "FROM ALBUMS "
                                      + "WHERE REFSERIE = ? ";
                    if (FIdAuteur != -1)
                    {
                        cmd.CommandText += "AND REFALBUM IN (SELECT REFALBUM FROM AUTEURS WHERE REFPERSONNE = ?) ";
                    }
                    cmd.CommandText += "ORDER BY COALESCE(HORSSERIE, -1), COALESCE(INTEGRALE, -1), COALESCE(TOME, -1)";
                    cmd.Parameters.Clear();
                    cmd.Parameters.Add(BDPPCDatabase.getParameter("@RefSerie", Reference));
                    if (FIdAuteur != -1)
                    {
                        cmd.Parameters.Add(BDPPCDatabase.getParameter("@FIdAuteur", FIdAuteur));
                    }

                    using (IDataReader result = cmd.ExecuteReader())
                        using (BaseDataReader dataReader = new BaseDataReader(result, typeof(Album)))
                            if (result != null)
                            {
                                dataReader.fillList(Albums);
                            }

                    cmd.CommandText = "SELECT Genre "
                                      + "FROM GenreSeries s INNER JOIN Genres g ON g.RefGenre = s.RefGenre "
                                      + "WHERE RefSerie = ?";
                    cmd.Parameters.Clear();
                    cmd.Parameters.Add(BDPPCDatabase.getParameter("@RefSerie", Reference));
                    Genres.Clear();
                    using (IDataReader result = cmd.ExecuteReader())
                        using (BaseDataReader dataReader = new BaseDataReader(result, null))
                            while (result.Read())
                            {
                                Genres.Add(dataReader.GetString(0, string.Empty));
                            }

                    ArrayList Auteurs = new ArrayList();
                    StoredProcedures.Proc_Auteurs(Auteurs, -1, Reference);
                    Scenaristes.Clear();
                    Dessinateurs.Clear();
                    Coloristes.Clear();
                    foreach (Auteur auteur in Auteurs)
                    {
                        switch (auteur.Metier)
                        {
                        case 0:
                        {
                            Scenaristes.Add(auteur);
                            break;
                        }

                        case 1:
                        {
                            Dessinateurs.Add(auteur);
                            break;
                        }

                        case 2:
                        {
                            Coloristes.Add(auteur);
                            break;
                        }
                        }
                    }
                }
        }