Frage von Serhat83, 29

Wie kann ich einen Zustand in c# abfragen?

Es soll ein Zustand in c# abgefragt werden, und zwar meld ich mich an und setze den status auf 1 (angemeldet). Wenn ich jetzt noch mal auf den Button anmelden gehe, sollte das Programm merken dass es bereits angemeldet ist und den Text ausgeben "Sie sind bereits angemeldet". Irgendwo habe ich einen Denkfehler, könnt ihr mir bitte weiterhelfen?

using System; using System.Collections.Generic; using System.Linq; using System.Data.SqlClient; using System.Configuration; using System.DirectoryServices.AccountManagement;

namespace Zeiterfassung2 { public partial class Eintrag : System.Web.UI.Page { SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ZeiterfassungConnectionString"].ConnectionString);

    protected void Page_Load(object sender, EventArgs e) 
    {
        con.Open();
    }

    private bool IsValid()
    {
        using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, "k"))
        {
            // validate the credentials
            return pc.ValidateCredentials(tbUserName.Text,tbPassword.Text);
        }
    }

    public bool status = false;

    protected void btnAnmelden_Click(object sender, EventArgs e)
    {
        if (IsValid())
        {
            if (status == false)
            {
                status = true;
                var _zeit = DateTime.Now;
                SqlCommand cmd = new SqlCommand(string.Format("insert into tblZeiten values('{0}','{1}','{2}')", tbUserName.Text, tbBemerkung.Text, _zeit), con);
                cmd.ExecuteNonQuery();
                con.Close();
                LbStatus.Visible = true;
                LbStatus.Text = string.Format("Anmeldung für {0} Uhr gespeichert.", _zeit.ToShortTimeString());
                LbStatus.ForeColor = System.Drawing.Color.Green;
                tbUserName.Text = "";
                tbBemerkung.Text = "";
            }
            else
                {
                    LbStatus.Text = "Sie sind bereits angemeldet.";
                }
        }
        else
        {
            LbStatus.Visible = true;
            LbStatus.Text = "Der Benutzername oder das Kennwort ist nicht korrekt.";
            LbStatus.ForeColor = System.Drawing.Color.Red;
            tbUserName.Text = "";
            tbBemerkung.Text = "";
        }
    }

    protected void btnAbmelden_Click(object sender, EventArgs e)
    {
        if (IsValid())
        {
            if (status == true)
            {
                status = false;
                var _zeit = DateTime.Now;

                SqlCommand cmd = new SqlCommand(string.Format("insert into tblZeiten values('{0}','{1}','{2}')", tbUserName.Text, tbBemerkung.Text, _zeit), con);
                cmd.ExecuteNonQuery();
                con.Clos
Antwort
von priesterlein, 29

Erst einmal: 1 ist nicht true. C# macht da einen Unterschied und den solltest du auch in deiner Frage beachten.

Wieso debuggst du dein Programm nicht? Es wäre ein sinnvolleres UI, wenn im angemeldeten Zustand kein Anmelden anklickbar wäre.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten