Класс для хранения логина-пароля - 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();
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д