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

Odpowiedz Nowy wątek
2019-09-11 17:00
0

https://4programmers.net/Forum/Ci.NET/330158-visual_studio_2017_problem_z_ukryciem_okna_logowanie?p=1618186#id1618186

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.

edytowany 1x, ostatnio: adix20_20, 2019-09-11 17:03

Pozostało 580 znaków

2019-09-11 17:49
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.

  2. Czy ty przypadkiem zamiast messageBoxa, nie otwierasz znowu okna logowania?

  3. Dobrze by było wrzucić kod, z fusów jeszcze tutaj nikt nie wywróżył, a już na pewno nic dobrego ;)

Pozostało 580 znaków

2019-09-11 18:02
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 .

edytowany 5x, ostatnio: adix20_20, 2019-09-11 18:06

Pozostało 580 znaków

2019-09-11 18:08
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

edytowany 1x, ostatnio: AdamWox, 2019-09-11 18:08

Pozostało 580 znaków

2019-09-11 20:42
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 ?

Pozostało 580 znaków

2019-09-11 21:05
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.

edytowany 2x, ostatnio: AdamWox, 2019-09-11 21:07

Pozostało 580 znaków

2019-09-12 16:06
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.

Pozostało 580 znaków

2019-09-12 16:13
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ą.

Pozostało 580 znaków

2019-09-12 21:29
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ą!

edytowany 4x, ostatnio: adix20_20, 2019-09-13 19:50

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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