C#UWP登录表单检查MySQL远程数据库中的凭据

时间:2017-12-12 13:04:03

标签: c# mysql uwp windows-10-universal

经过几个小时的研究后,我陷入了困境。我正在尝试使用登录表单创建一个基本的通用Windows应用程序 - 单击按钮后,使用远程MySQL数据库检查文本框中的凭据。如果有效,应用程序应导航到另一个指定的页面。如果不是,则显示错误消息。

我在下面的代码中找不到错误。单击按钮后,Windows的蓝色圆圈旋转,几秒钟后返回VS2017。没有错误和警告。 State.ToString()返回'Open',所以我确实与DB有连接。我做错了什么?

    public sealed partial class MainPage : Page
{
    const string connString = "server=my_server;pwd=pass;uid=user_id;database=mydb;persistsecurityinfo=True";
    MySqlConnection conn = new MySqlConnection(connString);

    public MainPage()
    {
        this.InitializeComponent();
    }

    private void DbConnection()
    {
        try
        {
            conn.Open();
        }
        catch (MySqlException e)
        {
            throw;
        }
    }

    private bool DataValidation(string user, string pass)
    {
        DbConnection();
        MySqlCommand cmd = new MySqlCommand("SELECT Username, Password FROM Users WHERE Username=@user AND Password=@pass;");

        cmd.Parameters.AddWithValue("@user", user);
        cmd.Parameters.AddWithValue("@pass", pass);
        cmd.Connection = conn;

        MySqlDataReader login = cmd.ExecuteReader();
        if (login.Read())
        {
            conn.Close();
            return true;
        }
        else
        {
            conn.Close();
            return false;
        }
    }

    private void LoginBtn_Click(object sender, RoutedEventArgs e)
    {
        string user = UserTextBox.Text;
        string pass = PassTextBox.Text;

        if (user == "" || pass == "")
        {
            StatusTextBlock.Text = ("No emty fields allowed. Try again...");
            return;
        }

        bool loginSuccessful = DataValidation(user, pass);

        if (loginSuccessful)
        {
            this.Frame.Navigate(typeof(Page2), null);
        }
        else
        {
            StatusTextBlock.Text = "Invalid e-mail or password. Try again...";
        }
    }
}

1 个答案:

答案 0 :(得分:-1)

完整的工作解决方案:

<div></div>
相关问题