WPF登录界面与MySQL数据库交互

在现代应用程序开发中,登录功能是一项非常常见和关键的功能。WPF(Windows Presentation Foundation)作为一种.NET框架的技术,提供了强大的图形用户界面功能,并且可以与各种数据库进行交互。本文将介绍如何使用WPF创建一个登录界面,并通过连接MySQL数据库来验证用户的登录信息。

准备工作

在开始之前,我们需要准备一些工具和环境:

  1. Visual Studio:安装最新的Visual Studio,确保已安装WPF开发工作负载。
  2. MySQL数据库:安装并配置MySQL数据库,确保可以通过用户名和密码连接到数据库。

创建WPF应用程序

首先,我们需要创建一个新的WPF应用程序。打开Visual Studio并选择创建新项目,然后选择WPF应用程序模板。

创建WPF应用程序

输入项目名称并选择保存位置,然后点击“创建”按钮。Visual Studio将自动生成一个初始的WPF应用程序项目。

创建登录界面

在WPF应用程序中,用户界面使用XAML(Extensible Application Markup Language)来定义。我们将使用XAML来创建登录界面。打开MainWindow.xaml文件,可以看到XAML代码。

<Window x:Class="LoginApp.MainWindow"
        xmlns="
        xmlns:x="
        Title="Login" Height="350" Width="500">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition Width="Auto"/>
        </Grid.ColumnDefinitions>
        
        <Label Content="Username:" Grid.Row="0" Grid.Column="0" Margin="5"/>
        <TextBox x:Name="UsernameTextBox" Grid.Row="0" Grid.Column="1" Margin="5"/>
        
        <Label Content="Password:" Grid.Row="1" Grid.Column="0" Margin="5"/>
        <PasswordBox x:Name="PasswordBox" Grid.Row="1" Grid.Column="1" Margin="5"/>
        
        <Button Content="Login" Grid.Row="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Margin="5" Click="LoginButton_Click"/>
        
        <TextBlock x:Name="StatusTextBlock" Grid.Row="3" Grid.ColumnSpan="2" HorizontalAlignment="Center" Margin="5"/>
    </Grid>
</Window>

上述代码定义了一个包含用户名和密码输入框、登录按钮和状态文本的登录界面。其中,TextBox用于输入用户名,PasswordBox用于输入密码,Button用于触发登录操作,TextBlock用于显示登录状态信息。

创建数据库连接

接下来,我们需要在代码中实现与MySQL数据库的连接。首先,我们需要安装MySQL数据库的.NET连接器。在Visual Studio中打开NuGet包管理器控制台,并运行下面的命令来安装MySQL连接器:

Install-Package MySql.Data

安装完成后,我们可以在代码中使用MySQL连接器。

在MainWindow.xaml.cs文件中添加以下代码:

using MySql.Data.MySqlClient;

...

private string connectionString = "server=localhost;user=root;database=test;password=123456;";

private MySqlConnection connection;

public MainWindow()
{
    InitializeComponent();
    
    connection = new MySqlConnection(connectionString);
}

在上述代码中,我们定义了一个连接字符串,其中包含了MySQL服务器的地址、用户名、密码和要连接的数据库名称。然后,我们创建了一个MySqlConnection对象用于与数据库建立连接。

实现登录功能

现在,我们可以实现登录功能了。在登录按钮的Click事件处理程序中,我们将检查输入的用户名和密码是否与数据库中的记录匹配。

private void LoginButton_Click(object sender, RoutedEventArgs e)
{
    string username = UsernameTextBox.Text;
    string password = PasswordBox.Password;
    
    string query = $"SELECT COUNT(*) FROM users WHERE username='{username}' AND password='{password}'";
    MySqlCommand command = new MySqlCommand(query, connection);
    
    try
    {
        connection.Open();
        
        int count = Convert.ToInt32(command.ExecuteScalar());
        
        if (count > 0)
        {
            StatusTextBlock.Text = "登录成功!";
        }
        else
        {
            StatusTextBlock.Text = "用户名或密码