Класс для хранения логина-пароля - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, уважаемые. Накидал некоторый ГУЙ (Windows Forms) для MySQL. Текстбоксы для ввода логина-пароля и dataGridView для отображения таблицы БД. Создал класс Account для хранения логина-пароля с публичными (потом сделаю приватными и допишу get-set) полями login, password чтобы заносить туда данные при авторизации и дёргать их оттуда при необходимости. При авторизации всё проходит гладко, но при повторном вызове объекта класса Account поля login и password уже не содержат значений, введённых при авторизации, что логично. Как я понимаю, предыдущий объект класса Account с введёнными данными логин-пароль уже сожрал GC. Или я несу бред? Как бы так сделать, чтобы хранить введённые логин и пароль в течение работы программы и дёргать их при необходимости, например в новые формы Windows Forms? Заранее благодарю. Сам код: Form1.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();

        }
    }
}
Класс Account.cs
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();
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.75 из 5
Похожие ответы