using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using MySql.Data.MySqlClient; namespace Casino { internal class Database { private string myConnectionString = "server=mysql.pb.bib.de;uid=pbg2h25ala;pwd=a7TP2aRv7Xdu;database=pbg2h25ala_Casino"; public ObservableCollection GetUser() { ObservableCollection user = new ObservableCollection(); try { MySql.Data.MySqlClient.MySqlConnection myConnection; myConnection = new MySql.Data.MySqlClient.MySqlConnection(myConnectionString); //open a connection myConnection.Open(); // create a MySQL command and set the SQL statement with parameters MySqlCommand myCommand = new MySqlCommand(); myCommand.Connection = myConnection; myCommand.CommandText = @"SELECT * FROM Nutzer"; // myCommand.Parameters.AddWithValue("@code", "12"); // execute the command and read the results using MySqlDataReader myReader = myCommand.ExecuteReader(); while (myReader.Read()) { User u = new User(myReader.GetString("name"), myReader.GetInt32("age"), myReader.GetString("passwort")) { ID = myReader.GetString("id"), Name = myReader.GetString("name"), Alter = myReader.GetInt32("age"), Passwort = myReader.GetString("passwort"), Geld = myReader.GetDecimal("geld") }; user.Add(u); } myConnection.Close(); } catch (MySql.Data.MySqlClient.MySqlException ex) { Console.WriteLine(ex.Message); } return user; } public void InsertUser(User user) { using (MySqlConnection conn = new MySqlConnection(myConnectionString)) { conn.Open(); using (MySqlCommand cmd = new MySqlCommand( @"INSERT INTO Nutzer (id, name, age, passwort, geld) VALUES (@id, @name, @alter, @passwort, @geld)", conn)) { cmd.Parameters.AddWithValue("@id", user.ID); cmd.Parameters.AddWithValue("@name", user.Name); cmd.Parameters.AddWithValue("@alter", user.Alter); cmd.Parameters.AddWithValue("@passwort", user.Passwort); cmd.Parameters.AddWithValue("@geld", user.Geld); cmd.ExecuteNonQuery(); } } } public byte[] GetCardImage(int id) { byte[] imageBytes = null; using (MySqlConnection conn = new MySqlConnection(myConnectionString)) { conn.Open(); using (MySqlCommand cmd = new MySqlCommand("SELECT bild FROM Karten WHERE kartenid = @id", conn)) { cmd.Parameters.AddWithValue("@id", id); using (MySqlDataReader reader = cmd.ExecuteReader()) { if (reader.Read()) { imageBytes = (byte[])reader["bild"]; } } } } return imageBytes; } public List GetAllCards() { var cards = new List(); using (MySqlConnection conn = new MySqlConnection(myConnectionString)) { conn.Open(); // Lädt alle echten Karten aus der Tabelle (schließt Rückseite 'Back' aus) string query = "SELECT kartenid, wert, farbe, bild FROM Karten WHERE wert != 'Back' AND deckid != 'Slots'"; using (MySqlCommand cmd = new MySqlCommand(query, conn)) { using (MySqlDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { int id = reader.GetInt32("kartenid"); string wert = reader.GetString("wert"); string farbe = reader.GetString("farbe"); byte[] img = (byte[])reader["bild"]; cards.Add(new Busfahrer.Card(id, wert, farbe, img)); } } } } return cards; } // NEU: Holt das Bild der Kartenrückseite public byte[] GetCardBackImage() { byte[] imageBytes = null; using (MySqlConnection conn = new MySqlConnection(myConnectionString)) { conn.Open(); string query = "SELECT bild FROM Karten WHERE wert = 'Back' OR deckid = 'Back' LIMIT 1"; using (MySqlCommand cmd = new MySqlCommand(query, conn)) { using (MySqlDataReader reader = cmd.ExecuteReader()) { if (reader.Read()) { imageBytes = (byte[])reader["bild"]; } } } } return imageBytes; } public byte[] GetSound(int id) { byte[] soundBytes = null; using (MySqlConnection conn = new MySqlConnection(myConnectionString)) { conn.Open(); using (MySqlCommand cmd = new MySqlCommand("SELECT sound FROM Sounds WHERE id = @id",conn)) { cmd.Parameters.AddWithValue("@id", id); using (MySqlDataReader reader = cmd.ExecuteReader()) { if (reader.Read()) { soundBytes = (byte[])reader["sound"]; } } } } return soundBytes; } public void UpdateGeld(string id, decimal geld) { using (MySqlConnection conn = new MySqlConnection(myConnectionString)) { conn.Open(); using (MySqlCommand cmd = new MySqlCommand( "UPDATE Nutzer SET Geld = @geld WHERE id = @id", conn)) { cmd.Parameters.AddWithValue("@geld", geld); cmd.Parameters.AddWithValue("@id", id); cmd.ExecuteNonQuery(); } } } } }