Von Externer Klasse auf Formklasse zugreifen scheitert

#1
Hallo Zusammen,
ich versuche seit einiger Zeit meine Formfunktion zum laufen zu bekommen. D.h ich möchte von einer Methode einer Klasse auf eine Methode in der Formklasse zugreifen, die ein Label verändern soll, doch leider klappt das nicht so wirklich.

LG
Drake


C#:
    public partial class Form2 : Form
    {
        Timer timer = new Timer();
        
        public Form2()
        {
            InitializeComponent();
        }
        public void ShowErrorMessage(String errorMessage)
        {
            timer.Stop();
            this.errorTextLabel.Text = errorMessage;
            timer.Interval = 5000;
            timer.Tick += new EventHandler(ResetLabel);
            timer.Start();
        }

        public void ResetLabel(object sender, EventArgs e)
        {

            this.errorTextLabel.Text = "";
        }
   }
C#:
public class DatabaseClass
{
        Form2 form2 =new Form2();
        
        public void deleteFach(String theFach)
        {
            connection = new MySqlConnection(connectionString);
            command = connection.CreateCommand();
            command.CommandText = "SELECT * FROM faecher WHERE user = '" + username + "' AND fach = '" + theFach + "'";
            connection.Open();
            Reader = command.ExecuteReader();
            if (Reader.Read())
            {
                Reader.Close();
                command.CommandText = "DELETE FROM faecher WHERE user = '" + username + "' AND fach = '" + theFach + "'";
                command.ExecuteNonQuery();
            }
            else
            {
            form2.ShowErrorMessage("Was soll das");
        }

            connection.Close();
        }
}
 

Spyke

Capoeirista
Premium-User
#2
DatabaseClass hat eine eigene Form2 instanz und kennt nicht die welche du verändern/anpassen willst.
Du müsstest deine Form2 Isntanz die läuft der DatabassClass mit reichen.

Ist aber allgemein ein eher blödes/schlechtes verhalten.
Die DatabaseClass sollte nicht wissen für welche UI (oder was auch immer) sie Daten anfordert oder verändert.

Gib eher den Text aus deleteFach als Fehlertext/Fehlercode etc. zurück.
Und deine Form2 fragt diesen Rückgabewert ab und zeigt Text an.