Files
WIR-MACHEN-ALLE-ARM/Casino/Database.cs
T

179 lines
6.0 KiB
C#

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<User> GetUser()
{
ObservableCollection<User> user = new ObservableCollection<User>();
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.GetInt32("geld")
};
user.Add(u);
}
myConnection.Close();
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
Console.WriteLine(ex.Message);
}
return user;
}
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<Busfahrer.Card> GetAllCards()
{
var cards = new List<Busfahrer.Card>();
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();
}
}
}
}
}