Класс для хранения логина-пароля - C#
Формулировка задачи:
Здравствуйте, уважаемые.
Накидал некоторый ГУЙ (Windows Forms) для MySQL.
Текстбоксы для ввода логина-пароля и dataGridView для отображения таблицы БД.
Создал класс Account для хранения логина-пароля с публичными (потом сделаю приватными и допишу get-set) полями login, password чтобы заносить туда данные при авторизации и дёргать их оттуда при необходимости.
При авторизации всё проходит гладко, но при повторном вызове объекта класса Account поля login и password уже не содержат значений, введённых при авторизации, что логично. Как я понимаю, предыдущий объект класса Account с введёнными данными логин-пароль уже сожрал GC. Или я несу бред?
Как бы так сделать, чтобы хранить введённые логин и пароль в течение работы программы и дёргать их при необходимости, например в новые формы Windows Forms?
Заранее благодарю.
Сам код:
Form1.cs
Класс Account.cs
И сам "проект":
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using MySql.Data.MySqlClient; using MySql.Data; using System.Windows.Forms; namespace MySqlGUI { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnExit_Click(object sender, EventArgs e) { Close(); } private void btnConnect_Click(object sender, EventArgs e) { Account newAccount = new Account(); string user = tbUser.Text; string passwd = tbPasswd.Text; newAccount.login = user; newAccount.password = passwd; string Connect = "SERVER=localhost;" + "DATABASE=testbase;" + "UID=" + newAccount.login + ";" + "PASSWORD=" + newAccount.password + ";"; MySqlConnection myConnection = new MySqlConnection(Connect); try { myConnection.Open(); lblStatus.Text = "Статус соединения: Ok"; MessageBox.Show("Соединение установлено."); } catch (Exception ex) { lblStatus.Text = "Статус соединения: Failed..."; MessageBox.Show(ex.Message); } myConnection.Close(); } private void btnLookTable_Click(object sender, EventArgs e) { Account newAccount = new Account();//новый объект класса Account string user = tbUser.Text; string passwd = tbPasswd.Text; newAccount.login = user; newAccount.password = passwd; string Connect = "SERVER=localhost;" + "DATABASE=testbase;" + "UID=" + newAccount.login + ";" + "PASSWORD=" + newAccount.password + ";"; MySqlConnection myConnection = new MySqlConnection(Connect); myConnection.Open(); MySqlDataAdapter adapter = new MySqlDataAdapter("select * from main", myConnection); DataSet DS = new DataSet(); adapter.Fill(DS); dataGridView.DataSource = DS.Tables[0]; myConnection.Close(); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MySqlGUI { class Account { public string login; public string password; } }
Решение задачи: «Класс для хранения логина-пароля»
textual
Листинг программы
using MySql.Data.MySqlClient; using System; using System.Data; using System.Windows.Forms; namespace MySqlGUI { public partial class Form1 : Form { private Account mAccount; public Form1() { InitializeComponent(); mAccount = null; } private void btnExit_Click(object sender, EventArgs e) { Close(); } private void btnConnect_Click(object sender, EventArgs e) { Account acc = new Account(); acc.login = tbUser.Text; acc.password = tbPasswd.Text; string Connect = "SERVER=localhost;" + "DATABASE=testbase;" + "UID=" + acc.login + ";" + "PASSWORD=" + acc.password + ";"; MySqlConnection myConnection = new MySqlConnection(Connect); try { myConnection.Open(); lblStatus.Text = "Статус соединения: Ok"; MessageBox.Show("Соединение установлено."); mAccount = acc; } catch (Exception ex) { lblStatus.Text = "Статус соединения: Failed..."; MessageBox.Show(ex.Message); mAccount = null; } myConnection.Close(); } private void btnLookTable_Click(object sender, EventArgs e) { if (mAccount != null) { string Connect = "SERVER=localhost;" + "DATABASE=testbase;" + "UID=" + mAccount.login + ";" + "PASSWORD=" + mAccount.password + ";"; MySqlConnection myConnection = new MySqlConnection(Connect); myConnection.Open(); MySqlDataAdapter adapter = new MySqlDataAdapter("select * from main", myConnection); DataSet DS = new DataSet(); adapter.Fill(DS); dataGridView.DataSource = DS.Tables[0]; myConnection.Close(); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д