/// <summary> /// Holt ein Element /// </summary> /// <param name="key">ID/Key des Elements</param> /// <returns>Wurde das Element gefunden wird das Object zurückgegebene, ansonsten null</returns> internal static Medien GetElement(int key) { Medien tempObject = null; if (!IsKeyEindeutig(key)) { try { using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); using (SqlCommand command = new SqlCommand("SELECT * FROM Medien WHERE Signatur='" + key + "'", connection)) { using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { Enum.TryParse(reader.GetString(3), out Medien.TypBezeichnung typ); Enum.TryParse(reader.GetString(4), out Medien.LeihstatusBezeichnung leihstatus); if (typ == Medien.TypBezeichnung.Video) { Videos video = new Videos(reader.GetInt32(0), reader.GetString(1), reader.GetString(2), typ, leihstatus); tempObject = video; } else if (typ == Medien.TypBezeichnung.Buch) { Buecher buch = new Buecher(reader.GetInt32(0), reader.GetString(1), reader.GetString(2), typ, leihstatus); tempObject = buch; } } } } } } catch (SqlException ex) { // TODO } return(tempObject); } else { Console.WriteLine("Signatur nicht gefunden!"); return(null); } }
/// <summary> /// Daten speichern /// </summary> /// <param name="key">ID des Elements</param> /// <param name="data">Das zu speichernde Datenobjekt</param> internal static void AddData(int key, Medien data) { string tempEigenschaft = ""; try { using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); using (SqlCommand command = new SqlCommand("INSERT INTO Medien VALUES(@Sig,@Titel,@Eigenschaft,@Typ,@Leihstatus)", connection)) { if (data is Buecher) { Buecher buch; buch = data as Buecher; tempEigenschaft = buch.Seitenzahl.ToString(); } else if (data is Videos) { Videos video; video = data as Videos; tempEigenschaft = video.Laufzeit.ToString(); } command.Parameters.AddWithValue("@Sig", data.Signatur); command.Parameters.AddWithValue("@Titel", data.Titel); command.Parameters.AddWithValue("@Eigenschaft", tempEigenschaft); command.Parameters.AddWithValue("@Typ", data.Typ.ToString()); command.Parameters.AddWithValue("@Leihstatus", data.Leihstatus.ToString()); command.ExecuteNonQuery(); } } } catch (SqlException ex) { Console.WriteLine("Fehler beim Datensatz schreiben: " + ex.Message); } }
static void Main(string[] args) { string auswahl = ""; int signatur = 0; Medien tempMedien = null; Console.WriteLine("Medienverwaltung"); while (auswahl != "q") { Console.WriteLine("\n#### Menue ####"); Console.WriteLine("Anlegen eines neuen Buch 'b'"); Console.WriteLine("Anlegen eines neuen Video 'v'"); Console.WriteLine("Ausgabe der vorhandenen Medien 'l'"); Console.WriteLine("Entleihen eines Medium 'e Signatur'"); Console.WriteLine("Rueckgabe eines Medium 'r Signatur'"); Console.WriteLine("Löschen eines Medium 'd Signatur'"); Console.WriteLine("Programm beenden 'q'\n"); auswahl = Console.ReadLine(); if (auswahl != null && auswahl.Length > 5) { string[] temp = auswahl.Split(' '); auswahl = temp[0]; signatur = Convert.ToInt32(temp[1]); } Console.WriteLine(); switch (auswahl) { case "b": new Buecher(); break; case "v": new Videos(); break; case "l": // Für die Spaltenüberschrift Medien.List(); foreach (Medien medienObj in Data.GetAllElements()) { if (medienObj is Buecher) { Buecher buch; buch = medienObj as Buecher; if (buch != null) { buch.List(); } } else if (medienObj is Videos) { ((Videos)medienObj).List(); } } break; case "e": tempMedien = Data.GetElement(signatur); if (tempMedien != null) { tempMedien.Entleihen(); } break; case "r": tempMedien = Data.GetElement(signatur); if (tempMedien != null) { tempMedien.Rueckgabe(); } break; case "d": Data.DeleteElement(signatur); break; case "q": // "durchrutschen" break; default: Console.WriteLine("Falsche Eingabe\n"); break; } } }