Files
csharp-uebung/FahrzeugDatenBank/FahrzeugRepository.cs
2025-04-30 01:10:55 +02:00

89 lines
2.8 KiB
C#

using MySqlConnector;
namespace FahrzeugDatenBank;
public class FahrzeugRepository
{
private string _connectionString;
public FahrzeugRepository(string connectionString)
{
_connectionString = connectionString;
}
public List<FahrzeugDTO> HoleAlleFahrzeuge()
{
using var datenbankVerbindung = new MySqlConnection(_connectionString);
datenbankVerbindung.Open();
const string query = "SELECT id, fahrzeug_name, fahrzeug_typ FROM fahrzeuge";
using var kommando = new MySqlCommand(query, datenbankVerbindung);
var reader = kommando.ExecuteReader();
List<FahrzeugDTO> fahrzeugs = new();
while (reader.Read())
{
var fahrzeug = new FahrzeugDTO();
fahrzeug.Id = reader.GetInt32(0);
fahrzeug.Name = reader.GetString(1);
fahrzeug.Typ = reader.GetString(2);
fahrzeugs.Add(fahrzeug);
}
return fahrzeugs;
}
public void FuegeFahrzeugEin(string fahrzeugName, string fahrzeugTyp)
{
using var datenbankVerbindung = new MySqlConnection(_connectionString);
datenbankVerbindung.Open();
const string query = "INSERT INTO fahrzeuge (fahrzeug_name, fahrzeug_typ)" + "VALUES (@fahrzeug_name, @fahrzeug_typ);";
using var kommando = new MySqlCommand(query, datenbankVerbindung);
kommando.Parameters.AddWithValue("@fahrzeug_name", fahrzeugName);
kommando.Parameters.AddWithValue("@fahrzeug_typ", fahrzeugTyp);
kommando.ExecuteNonQuery();
}
public void LoescheFahrzeug(int id)
{
using var datenbankVerbindung = new MySqlConnection(_connectionString);
datenbankVerbindung.Open();
const string query = "DELETE FROM fahrzeuge WHERE id = @fahrzeug_id;";
using var kommando = new MySqlCommand(query, datenbankVerbindung);
kommando.Parameters.AddWithValue("@fahrzeug_id", id);
kommando.ExecuteNonQuery();
}
public List<FahrzeugDTO> SucheFahrzeuge(string searchTerm)
{
using var datenbankVerbindung = new MySqlConnection(_connectionString);
datenbankVerbindung.Open();
const string query = "SELECT id, fahrzeug_name, fahrzeug_typ FROM fahrzeuge WHERE fahrzeug_name LIKE @searchTerm OR fahrzeug_typ LIKE @searchTerm;";
using var kommando = new MySqlCommand(query, datenbankVerbindung);
kommando.Parameters.AddWithValue("@searchTerm", "%" + searchTerm + "%");
using var reader = kommando.ExecuteReader();
List<FahrzeugDTO> fahrzeugs = new();
while (reader.Read())
{
var fahrzeug = new FahrzeugDTO
{
Id = reader.GetInt32(0),
Name = reader.GetString(1),
Typ = reader.GetString(2)
};
fahrzeugs.Add(fahrzeug);
}
return fahrzeugs;
}
}