示例#1
0
        // Read from DB
        static public DbFrage Read(Connector connector, uint frage_nr)
        {
            // unser Rückgabe-Objekt
            DbFrage dbFrage = null;

            connector.Connection.Open();
            string       query  = "SELECT * FROM T_Fragen WHERE p_frage_nr = " + frage_nr;
            DbDataReader reader = connector.ExecuteReader(query);

            if (reader.HasRows)
            {
                reader.Read();
                uint   _frage_nr = (uint)reader["p_frage_nr"];
                string _frage    = (string)reader["frage"];
                string _loesung  = (string)reader["loesung"];
                string _antwortA = (string)reader["antwortA"];
                string _antwortB = (string)reader["antwortB"];
                string _antwortC = (string)reader["antwortC"];
                string _antwortD = (string)reader["antwortD"];
                dbFrage = new DbFrage(_frage_nr, _frage, _loesung[0], _antwortA, _antwortB, _antwortC, _antwortD);
            }
            else
            {
                connector.Connection.Close();
                throw new DbFrageReadException();
            }
            connector.Connection.Close();

            return(dbFrage);
        }
示例#2
0
        static public DbBenutzer_Frage_Fach Read(Connector connector, uint benutzer_nr, uint frage_nr, uint fach_nr)
        {
            DbBenutzer_Frage_Fach dbBenutzerFrageFach = null;
            Fach     fach     = DbFach.Read(connector, fach_nr);
            Frage    frage    = DbFrage.Read(connector, frage_nr);
            Benutzer benutzer = DbBenutzer.Read(connector, benutzer_nr);

            connector.Connection.Open();
            string       query  = "SELECT * FROM T_Benutzer_Fragen_Faecher WHERE p_f_benutzer_nr = " + benutzer_nr + " AND p_f_frage_nr" + frage_nr + " AND p_f_fach_nr" + fach_nr;
            DbDataReader reader = connector.ExecuteReader(query);

            if (reader.HasRows)
            {
                int _richtig = (int)reader["richtig"];
                int _falsch  = (int)reader["falsch"];
                dbBenutzerFrageFach = new DbBenutzer_Frage_Fach(_richtig, _falsch, benutzer, frage, fach);
            }
            else
            {
                connector.Connection.Close();
                throw new DbBenutzer_Frage_Fach_ReadException();
            }
            connector.Connection.Close();
            return(dbBenutzerFrageFach);
        }
示例#3
0
        // Read from DB
        static public DbFach Read(Connector connector, uint fach_nr)
        {
            DbFach dbFach = null;

            connector.Connection.Open();
            string       query  = "SELECT * FROM T_Faecher WHERE p_fach_nr = " + fach_nr;
            DbDataReader reader = connector.ExecuteReader(query);

            if (reader.HasRows)
            {
                reader.Read();
                uint _fach_nr                  = (uint)reader["p_fach_nr"];
                uint _kapazitaet               = (uint)reader["kapazitaet"];
                uint _anzahl_wiederholungen    = (uint)reader["anzahl_wiederholungen"];
                uint _wiederholungs_zeitspanne = (uint)reader["wiederholungs_zeitspanne"];
                uint _benutzer_nr              = (uint)reader["f_benutzer_nr"];
                dbFach = new DbFach(_fach_nr, _kapazitaet, _anzahl_wiederholungen, _wiederholungs_zeitspanne, _benutzer_nr);
            }
            else
            {
                connector.Connection.Close();
                throw new DbFachReadException();
            }

            connector.Connection.Close();
            return(dbFach);
        }
示例#4
0
        static public List <DbBenutzer_Frage_Fach> Read(Connector connector, uint benutzer_nr)
        {
            List <DbBenutzer_Frage_Fach> benutzerfragefachliste = new List <DbBenutzer_Frage_Fach>();
            DbBenutzer_Frage_Fach        benutzerfragefach      = null;
            Benutzer benutzer = DbBenutzer.Read(connector, benutzer_nr);

            connector.Connection.Open();
            string       query  = "SELECT * FROM t_user_fragen WHERE p_f_benutzer_nr = " + benutzer_nr;
            DbDataReader reader = connector.ExecuteReader(query);

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    int   _benutzer_nr = (int)reader["p_f_benutzer_nr"];
                    uint  _fach_nr     = (uint)reader["p_f_fach_nr"];
                    uint  _frage_nr    = (uint)reader["p_f_frage_nr"];
                    int   _richtig     = (int)reader["richtig"];
                    int   _falsch      = (int)reader["falsch"];
                    Fach  fach         = DbFach.Read(connector, _fach_nr);
                    Frage frage        = DbFrage.Read(connector, _frage_nr);
                    benutzerfragefach = new DbBenutzer_Frage_Fach(_richtig, _falsch, benutzer, frage, fach);
                    benutzerfragefachliste.Add(benutzerfragefach);
                }
            }

            else
            {
                connector.Connection.Close();
                throw new DbFrageReadException();
            }
            connector.Connection.Close();
            return(benutzerfragefachliste);
        }
示例#5
0
        public static Benutzer Read(Connector connector, uint benutzer_nr)
        {
            // unser Rückgabe-Objekt
            Benutzer benutzer = null;

            connector.Connection.Open();
            string       query  = "SELECT * FROM T_Benutzer WHERE p_benutzer_nr = " + benutzer_nr;
            DbDataReader reader = connector.ExecuteReader(query);

            if (reader.HasRows)
            {
                reader.Read();
                uint   _p_benutzer_nr = (uint)reader["p_benutzer_nr"];
                string _login_name    = (string)reader["login_name"];
                string _email_adresse = (string)reader["email_adresse"];
                string _passwort      = (string)reader["passwort"];
                uint   _fk_rolle_nr   = (uint)reader["fk_rolle_nr"];

                switch (_fk_rolle_nr)
                {
                case 1:
                    benutzer = new DbAdmin(_p_benutzer_nr, _login_name, _email_adresse, _passwort);
                    break;

                case 2:
                    benutzer = new DbDozent(_p_benutzer_nr, _login_name, _email_adresse, _passwort);
                    break;

                case 3:
                    benutzer = new DbSchueler(_p_benutzer_nr, _login_name, _email_adresse, _passwort);
                    break;

                default:
                    // TODO besser als Check-Constraint in der DB realisieren
                    throw new UnsupportedRoleException();
                }
                reader.Close();

                // Jetzt lesen wir noch die Fächer ein
                // Warum ist das eigentlich hier implementiert worden ?
                //
                query  = "SELECT * FROM T_Faecher WHERE f_benutzer_nr = " + benutzer.Benutzer_nr;
                reader = connector.ExecuteReader(query);
                if (reader.HasRows)
                {
                    int i = 0;
                    while (i < 5 && reader.Read())
                    {
                        uint   _fach_nr                  = (uint)reader["p_fach_nr"];
                        uint   _kapazitaet               = (uint)reader["kapazitaet"];
                        uint   _anzahl_wiederholungen    = (uint)reader["anzahl_wiederholungen"];
                        uint   _wiederholungs_zeitspanne = (uint)reader["wiederholungs_zeitspanne"];
                        uint   _benutzer_nr              = (uint)reader["f_benutzer_nr"];
                        DbFach dbFach = new DbFach(_fach_nr, _kapazitaet, _anzahl_wiederholungen, _wiederholungs_zeitspanne, _benutzer_nr);

                        benutzer.FachListe[i] = dbFach;
                        i++;
                    }
                }
                reader.Close();
            }
            else
            {
                connector.Connection.Close();
                throw new DbFrageReadException();
            }
            connector.Connection.Close();

            return(benutzer);
        }