DialogResult.OK. -nie pozwala mi otwierać zakładek

0

Visual Studio 2017 Problem z ukryciem okna logowanie

Witam was ponownie( zapytanie będzie kontynuacja problemu z linku) .Napotkałem kolejny problem odnośnie logowania(zapewne to jedna linijka kodu załatwi ale nie mam pojęcia jaka)mianowicie w programie mam "N" zakładek w pasku menu ,w każdej mam button który wpisuje dane do mql. ale po każdym zapisie czyli kliknięciu w klawisz nie przechodzi do MSBOX. Dane zapisane tylko prosi o login i hasło .
Po wpisaniu wyskakuje komunikat o poprawnym dodaniu rekordu do bazy danych, jak to zrobić proszę o pomoc.

0
  1. Wcześniej pisałeś, że masz zrobioną jakąś dziwną sesje. Do czego ona służy? Jakoś to wytłumaczenie do mnie nie przemawia, ponieważ nie potrzebujesz klasy session, aby sprawdzić poprawność hasła i loginu.

Stworzyłem klasę session aby nie można było zalogować się bez poprawnego hasła i loginu.

  1. Czy ty przypadkiem zamiast messageBoxa, nie otwierasz znowu okna logowania?
  2. Dobrze by było wrzucić kod, z fusów jeszcze tutaj nikt nie wywróżył, a już na pewno nic dobrego ;)
0

Sesje zostały usunięte jak podałeś mi rozwiązanie z logowanie(kombinowałem na rożne sposoby długi czas pisałem w php i chciałem coś podobnego zrobić ale mi się nie udało wiec napisałem do was po raz pierwszy).
Po kliknięciu w menu dodaj kontrahenta otwieram kolejne okno na którym mam buton dodaj,po wpisaniu do textbox np firma 1 klikam dodaj i to ma zapisać w bazie danych ale niczym zapisze pyta mnie o hasło i login.
okno główne to które pojawia się po zalogowaniu
(kod przestawia wywołanie z menu)

public partial class Baza : Form
{

    MySqlConnection poloczenie = new MySqlConnection("server=;user=;password=;database=");
    MySqlCommand komenda;
    MySqlDataReader odczyt;
    string zapytanie = "";
    string idt = "";
    string prowadzacy2 = "";
 






    public Baza()
    {
        

        InitializeComponent();
       Logowanie logs = new Logowanie();
     
        
        odczytlista();
        kontrahentdodaj();
        listView1.View = View.Details;
        listView1.GridLines = true;
        listView1.FullRowSelect = true;









    }

private void zleceniaToolStripMenuItem_Click(object sender, EventArgs e)
{

        Kontrachent kon = new Kontrachent();
        kon.Show();
      
    }

okno koktrachet

namespace WindowsFormsApp1
{
public partial class Kontrachent : Form
{

    MySqlConnection poloczenie = new MySqlConnection("server=;user=;password=;database=");
    MySqlCommand komenda;

    string zapytanie = "";
    private void doajkon()
    {
        try
        {
            if (poloczenie.State == ConnectionState.Closed)
            {


                poloczenie.Open();








                zapytanie = string.Format("INSERT INTO kontrahent( klient) VALUES('{0}')",textBox1.Text);

                komenda = new MySqlCommand(zapytanie, poloczenie);
                komenda.ExecuteNonQuery();



                poloczenie.Close();

              


            }
        }
        catch (Exception ex)
        {
            string Blad = string.Format("Bład połaczenia bazy danych", ex.Message);
            MessageBox.Show(Blad, "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);



        }
        finally
        {
            poloczenie.Close();
        }
    }


    public Kontrachent()
    {
        
        InitializeComponent();
     
    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {

    }

    private void button1_Click(object sender, EventArgs e)
    {
      
        Baza baz = new Baza();
        baz.konsw(0);
       
        doajkon();
        baz.kontrahentdodaj();
        MessageBox.Show("Dodano kontrahenta", "error", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
       
    }

    private void Kontrachent_Load(object sender, EventArgs e)
    {

    }

}

} Proszę moderatora o poprawieni wyświetlania kodu .

0

Niemiłosierny chaos, ale to początki, z czasem się nauczysz.
Robisz tutaj Baza baz = new Baza();,

private void button1_Click(object sender, EventArgs e)
    {
        Baza baz = new Baza();
        baz.konsw(0);

        doajkon();
        baz.kontrahentdodaj();
        MessageBox.Show("Dodano kontrahenta", "error", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
    }

a w klasie Baza, w konstruktorze masz Logowanie logs = new Logowanie();:

public Baza()
    {
        InitializeComponent();
       Logowanie logs = new Logowanie();

        odczytlista();
        kontrahentdodaj();
        listView1.View = View.Details;
        listView1.GridLines = true;
        listView1.FullRowSelect = true;
    }

Każde wywołanie new Baza() wywoła new Logowanie().

@cerrato
Byłbyś na tyle miły i mi tego posta upiększył? :D

0

Ok rozumie, a jak to o minąć w sposób taki by po zalogowaniu nie pytało mnie ponownie gdy będę wywoływał zakładki ?

0

Wyrzuć z przycisku

Baza baz = new Baza();
baz.konsw(0);

Powinno wyglądać to tak:

private void button1_Click(object sender, EventArgs e)
    {
        doajkon();
        MessageBox.Show("Dodano kontrahenta", "error", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
    }

dodajkon

 private void doajkon()
    {
        try
        {
  MySqlConnection poloczenie = new MySqlConnection("server=;user=;password=;database=");
    MySqlCommand komenda;

    string zapytanie = "";
            if (poloczenie.State == ConnectionState.Closed)
            {

                poloczenie.Open();

                zapytanie = string.Format("INSERT INTO kontrahent( klient) VALUES('{0}')",textBox1.Text);

                komenda = new MySqlCommand(zapytanie, poloczenie);
                komenda.ExecuteNonQuery();

                poloczenie.Close();

            }
        }
        catch (Exception ex)
        {
            string Blad = string.Format("Bład połaczenia bazy danych", ex.Message);
            MessageBox.Show(Blad, "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);

        }
        finally
        {
            poloczenie.Close();
        }
    }

C# i WinForms to spory przeskok z PHP jeśli chodzi o przyzwyczajenia, strukturę projektu i samo działanie oprogramowania. Widać to po twoim kodzie. Potrzebujesz podstaw najpierw. Budowy klas i obiektów i operacji na nich, nazywanie zmiennych, nazywanie kontrolek. Najważniejsze to zrozumieć jak działa WinForms, jak działają okienka, co się wywołuje i kiedy, a co nie. Później dochodzą do tego biblioteki zewnętrzne, które ułatwiają życie.

0

Baza baz = new Baza();
baz.konsw(0);
Ok masz racje ale to pozostałość po moich kombinacjach, ale jak doprowadzi do tego by nie pytał mnie o hasło ? Co do nauki próbuje to zrozumieć.
Co do programu to co robię działa poprawnie na www ale che to przenieść całkiem na PC (na celu mam większy komfort pracy mój i moich kolegów ).
Program ma proste zadanie i kilka wymagań :
wymagania :
logowanie i kota użytkowników/
zakładki do których jest dostęp według ustalonych uprawnień użytkownika.
Panel administracyjny
możliwość zmiany hasła każdego użytkownika jaki jest zalogowany
zadania :
wyświetlanie listy zleceń
dodawanie zleceń
edycje zleceń
dodawanie kontrahentów i firm instalatorski
komunikowanie kończących się terminów.
Myślę ze od razu powinienem zacząć od tego opisu.

0

Napisałem ci wyżej co masz zrobić żeby nie pytał w przypadku jaki podałeś. Z resztą problemów musisz sobie poradzić analogicznie. Twoja praca nad tym nie będzie łatwiejsza póki nie ogarniesz podstaw. Aplikacja wcale nie mała, z tego co napisałeś, więc jeszcze sporo przed tobą.

0

Dzięki działa tylko nie odświeża mi comboboxa instalator ale trudno zrobiłem tak ze trzeba kliknąć w labe ,tak to miałem już dawno zrobione ale musiałem zamykać program wy dodało nowy itams do combo boxa . program wygląda tak na chwile obecną!

1 użytkowników online, w tym zalogowanych: 0, gości: 1