管理员专用页?

2cmtqfgy  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(373)

我目前正在制定一个windows窗体登录系统,我已经制定了如何建立一个一般每个人都可以看到主页系统,但对于管理员,我希望它打开一个新的表单(form3),其中将包含客户订单。我需要它打开从登录按钮。点击就像form2打开显示一般用户的商店页面。我的表中也没有用户角色的列。我试过if-else语句,遇到了bools(字符串除外)的问题。

using System;
    using System.Data;
    using System.Windows.Forms;
    using MySql.Data;
    using MySql.Data.MySqlClient;

    namespace Aliena_Store
    {

public partial class Form1 : Form
{
    //string ConnectionState = "";
    public Form1()
    {
        InitializeComponent();

    }

    MySqlConnection connection = new MySqlConnection("server=localhost;user=root;database=Aliena_Store;port=3306;password=Blackie");
    MySqlDataAdapter adapter;

    DataTable table = new DataTable();

    private void UsernameLogin_TextChanged(object sender, EventArgs e)
    {

    }

    private void PasswordLogin_TextChanged(object sender, EventArgs e)
    {

    }

    private void LoginButton_Click(object sender, EventArgs e)
    {
        adapter = new MySqlDataAdapter("SELECT `username`, `password` FROM `User_Details` WHERE `username` = '" + UsernameLogin.Text + "' AND `password` = '" + PasswordLogin.Text + "'", connection);

        adapter.Fill(table);
        var usernameSaved = UsernameLogin.Text;
        var passwordSaved = PasswordLogin.Text;
        Panel panel1 = new Panel();

        if (table.Rows.Count <= 0)
        {

         panel1.Height = 0;

         var result = MessageBox.Show("Username/Password Are Invalid or does not exist. Please sign up or retry your details");

        }

        else
        {
            panel1.Height = 0;
            this.Hide();
            if (table.Rows.Count >= 0)
            {

                Form nextForm;
                var result = MessageBox.Show("Login successful...Now logging in");
                this.Hide();
                object user = UsernameLogin.Text;
                object password = PasswordLogin.Text;
                if (user = "root" & password = "Pa$$w0rd")
                {
                    nextForm = new Form3();
                }
                else
                {
                    nextForm = new Form2();
                }
                nextForm.ShowDialog();
            }

            //Form2 f2 = new Form2();
            //f2.ShowDialog();

            //if login is successful needs to lead to another screen - if matches my account standard store screen or make root account just for the admin page
        }

        table.Clear();
    }

    private void EmailSignUp_TextChanged(object sender, EventArgs e)
    {

    }

    private void UsernameSignUp_TextChanged(object sender, EventArgs e)
    {

    }

    private void PasswordSignUp_TextChanged(object sender, EventArgs e)
    {

    }

    private void SignUpButton_Click(object sender, EventArgs e)
    {
        //connection.Open();
        string Query = "insert into User_Details (Email,Username,Password) values('" + this.EmailSignUp.Text + "', '" + this.UsernameSignUp.Text + "','" + this.PasswordSignUp.Text + "');";
        //string insertQuery = "INSERT INTO User_Details(Email,Username,Password)VALUES('" + EmailSignUp.Text + "','" + UsernameSignUp.Text + "'," + PasswordSignUp.Text + ")";
        MySqlCommand command = new MySqlCommand(Query,connection);

        try
        {
            if (command.ExecuteNonQuery() == 1)
            {
                MessageBox.Show("Data Inserted");
                connection.Close();
            }
            else
            {
                MessageBox.Show("Data Not Inserted");
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
            connection.Close();
        }

    }

}

}

uubf1zoe

uubf1zoe1#

有几件事。
在应用程序中需要一个存储用户属性的用户对象。此对象可以具有isadmin属性,您可以稍后在代码中使用该属性。
或者,如果您不想创建和维护一个user对象,您可以再次调用数据库来查看该用户是否是管理员,并将结果存储在方法的本地。
然后示例化 Form3 而不是 Form2 取决于用户是否是管理员。

Form nextForm;
var result = MessageBox.Show("Login successful...Now logging in");
this.Hide();
if (user.IsAdmin) {
    nextForm = new Form3();
} else {
    nextForm = new Form2();
}
nextForm.ShowDialog();

ps:我希望你没有像看起来那样在数据库中以明文形式存储密码。

相关问题