Как открыть основную форму после входа в систему?
После входа в систему я хочу открыть основную форму. Основная форма состоит из 4 кнопок с левой стороны, где каждая представляет собой один пользовательский элемент управления, каждый щелчок по кнопке должен открывать/показывать usercontrol, который расположен в правой части основной формы. Поэтому то, что я хочу сделать после входа в систему, - это показать/начать с первой кнопки, которая является кнопкой Home, другой известной как HomeUserControl.
Когда я запускаю этот код, логин работает, но он открывает пустую форму
Что я уже пробовал:
I have this login file: <pre> private void ButtonLogin(object sender, EventArgs e) { DB db = new DB(); String username = textBoxUser.Text; String password = textBoxPass.Text; DataTable table = new DataTable(); MySqlDataAdapter adapter = new MySqlDataAdapter(); MySqlCommand command = new MySqlCommand("SELECT * FROM `korisnik` WHERE `username` = @usn and `lozinka` = @loz", db.getConnection()); command.Parameters.Add("@usn", MySqlDbType.VarChar).Value = username; command.Parameters.Add("@loz", MySqlDbType.VarChar).Value = password; adapter.SelectCommand = command; adapter.Fill(table); //provjera postoji li korisnik if(table.Rows.Count > 0) { this.Hide(); MainForm mainForm = new MainForm(); mainForm.Show(); } else { // provjera je li polje username prazno if (username.Trim().Equals("")) { MessageBox.Show("Upišite username kako bi se uspješno ulogirali", "Prazan username", MessageBoxButtons.OK, MessageBoxIcon.Error); } // provjera je li polje lozinka prazno else if(password.Trim().Equals("")) { MessageBox.Show("Upišite lozinku kako bi se uspješno ulogirali", "Prazna lozinka", MessageBoxButtons.OK, MessageBoxIcon.Error); } //provjera jesu li oba polja prazna else { MessageBox.Show("Pogrešan username ili lozinka", "Pogrešni podaci", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } }
и это главная форма:
namespace projekt { public partial class MainForm : Form { private void button1_Click(object sender, EventArgs e) { if (!panel.Controls.Contains(HomeUserControl.Instanca)) { panel.Controls.Add(HomeUserControl.Instanca); HomeUserControl.Instanca.Dock = DockStyle.Fill; HomeUserControl.Instanca.BringToFront(); } else HomeUserControl.Instanca.BringToFront(); } private void button2_Click(object sender, EventArgs e) { if (!panel.Controls.Contains(DogsUserControl.Instanca)) { panel.Controls.Add(DogsUserControl.Instanca); DogsUserControl.Instanca.Dock = DockStyle.Fill; DogsUserControl.Instanca.BringToFront(); } else DogsUserControl.Instanca.BringToFront(); } private void button3_Click(object sender, EventArgs e) { if (!panel.Controls.Contains(CatsUserControl.Instanca)) { panel.Controls.Add(CatsUserControl.Instanca); CatsUserControl.Instanca.Dock = DockStyle.Fill; CatsUserControl.Instanca.BringToFront(); } else CatsUserControl.Instanca.BringToFront(); } private void button4_Click(object sender, EventArgs e) { if (!panel.Controls.Contains(AddUserControl_Dodaj.Instanca)) { panel.Controls.Add(AddUserControl_Dodaj.Instanca); AddUserControl_Dodaj.Instanca.Dock = DockStyle.Fill; AddUserControl_Dodaj.Instanca.BringToFront(); } else AddUserControl_Dodaj.Instanca.BringToFront(); } } }
Мне сказали, что я должен сделать конструктор по умолчанию, но я не знаю, как это сделать.
Richard Deeming
Похоже, вы храните пароли в виде обычного текста. Не делай этого!
Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хэширование паролей - делаем это правильно[^]