Класс для хранения логина-пароля - 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();
}
}
}
}