Можно ли создать приложение Windows «учетная запись пользователя» без ASP.NET? - PullRequest
0 голосов
/ 25 июня 2018

Я относительно новичок в C # и в настоящее время работаю над приложением Windows 'Account'.Я не использовал ASP.NET, просто Winforms и базу данных .mdf.Теперь моя главная цель - чтобы информация о пользователе (из базы данных) отображалась на домашней странице сразу после входа в систему.

Например:

Страница входа

Имя пользователя: sandy@mail.com

Пароль: 1234

Домашняя страница

Добро пожаловать, Сэнди Смит!

Ваш текущий адрес: Woodlands Drive


Вот код для моей кнопки входа в систему:

    private void button1_Click(object sender, EventArgs e)
    {
        SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\sit\Desktop\25June_LessonEffectivenessAnalysis\LessonEffectivenessAnalysis\LessonEffectivenessAnalysis\LessonEffectivenessAnalysis\LessonAnalysis.mdf;Integrated Security=True");
        SqlDataAdapter sda = new SqlDataAdapter("select count(*) from TBL_LOGIN where STAFF_EMAIL ='" + textBox1.Text + "' and PASSWORD='" + textBox2.Text + "'", conn);
        DataTable dt = new DataTable();
        sda.Fill(dt);
        if (dt.Rows[0][0].ToString() == "1")
        {
            this.Hide();
            Home_Page hp = new Home_Page();
            hp.Show();
        }
        else
        {
            MessageBox.Show("Please a valid email and password.", "alert", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

Буду очень признателен, если кто-нибудь сможет помочь.Спасибо!

1 Ответ

0 голосов
/ 25 июня 2018

Вот как я это делаю с winforms

В базе данных создайте таблицу USERS со столбцами USERID, PASS, DISPLAY_NAME, EMAIL, ANYTHING YOU WANT TO STORE FOR EACH USER ....

Создайте новый класс (.cs file) и назовите его CurrentUser

Внутри него создайте public static vars - Тип данных, который доступен из любого места в коде (запись / чтение) - длякаждый столбец в базе данных.

Таким образом, класс будет выглядеть следующим образом:

public class CurrentUser
{
    public static int userId;
    public static string pass;
    public static string displayName;
    public static string email;
    //every other column you added
}

Теперь создайте код для входа, подобный этому

private void button1_Click(object sender, EventArgs e)
{
    using(SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\sit\Desktop\25June_LessonEffectivenessAnalysis\LessonEffectivenessAnalysis\LessonEffectivenessAnalysis\LessonEffectivenessAnalysis\LessonAnalysis.mdf;Integrated Security=True");
    {
        conn.Open();
        using(SqlCommand cmd = new SqlCommand("SELECT PASS, USERID, DISPLAY_NAME, FROM USERS WHERE EMAIL = @MAIL", conn)
        {
            cmd.Parameters.AddWithValue("@MAIL", textBox1.Text);

            SqlDataReader dr = cmd.ExecuteReader():

            if(dr.Read()) //We do IF since we only need first one
            {
                //Now we check if typed password is equal to password from database
                if(dr[0].ToString().Equals(textBox2.Text))
                {
                    this.Hide();
                    Home_Page hp = new Home_Page();
                    hp.Show();


                    //Here we store current user data
                    CurrentUser.userId = Convert.ToInt32(dr[1]);
                    CurrentUser.pass = dr[0].ToString();
                    CurrentUser.displayName = dr[2].ToString();
                    CurrentUser.email = textBox1.Text;
                }
                else //Passwords doesn't match
                {
                    MessageBox.Show("Wrong password. Try again");
                }
            }
            else //If it hasn't found anyone with that email that mean email is incorect
            {
                MessageBox.Show("E-mail doesn't exist!");
            }
        }
    }
}

А теперь в любом классе / форме вынаходятся (внутри вашего пространства имен), вы можете получить доступ к данным текущего пользователя, скажем, string displayName = CurrentUser.displayName.

. Или, если вы хотите установить метку с приветственным сообщением, вы можете сделать

label1.Text = "Welcome, " + CurrentUser.displayName + "!";

Или лучше

label1.Text = String.Format("Welcome, {0}!", CurrentUser.displayName);

Или, если вы хотите отобразить MessageBox со всеми данными, просто сделайте

string[] msg = {
String.Format("Welcome, {0}.", CurrentUser.displayName),
String.Format("Your ID is: {0} while your e-mail is {1}!", CurrentUser.userId, CurrentUser.email)
};

MessageBox.Show(String.Joing(Environment.NewLine, msg));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...