WPF用户登录界面与数据库交互实现 (wpf用户登录界面数据库)

WPF(Windows Presentation Foundation)是一种微软推出的用于创建桌面应用程序的框架。它结合了多媒体、矢量图形、动画和交互设计的强大功能,可以创建出漂亮、交互性强的用户界面。而数据库操作是大部分应用程序的基础,如何实现WPF用户登录界面与数据库的交互,本文将进行详细讲解。

我们需要创建一个WPF应用程序。在Visual Studio中选择“新建项目”,选择“Visual C#”下的“WPF应用程序”。命名为“Login”,点击“确定”按钮,即可创建WPF应用程序。

接着,在“MnWindow.xaml”中创建用户登录界面。我们可以使用Grid布局,将控件分布在不同的行和列中。如下代码所示:

“`xaml

xmlns=”http://schemas.microsoft.com/winfx/2023/xaml/presentation”

xmlns:x=”http://schemas.microsoft.com/winfx/2023/xaml”

Title=”Login” Height=”250″ Width=”400″>

“`

在以上代码中,我们创建了5个行和2个列,分别用来存储用户名、密码、登录按钮、注册按钮和提示信息。其中,用户名和密码使用TextBox和PasswordBox控件实现输入,登录和注册按钮使用Button控件实现交互,提示信息使用TextBlock控件实现显示。

接着,我们需要在代码中实现登录按钮的点击事件和注册按钮的点击事件。登录事件的代码如下:

“`csharp

private void loginBtn_Click(object sender, RoutedEventArgs e)

{

string user = username.Text;

string pass = password.Password;

if (string.IsNullOrEmpty(user) || string.IsNullOrEmpty(pass))

{

message.Text = “用户名或密码不能为空!”;

return;

}

string connectionString = ConfigurationManager.ConnectionStrings[“DefaultConnection”].ConnectionString;

using (SqlConnection conn = new SqlConnection(connectionString))

{

string cmdText = “select * from users where username=@username and password=@password”;

SqlCommand cmd = new SqlCommand(cmdText, conn);

SqlParameter paramUsername = new SqlParameter(“@username”, user);

SqlParameter paramPassword = new SqlParameter(“@password”, pass);

cmd.Parameters.Add(paramUsername);

cmd.Parameters.Add(paramPassword);

conn.Open();

SqlDataReader reader = cmd.ExecuteReader();

if (reader.HasRows)

{

reader.Read();

message.Text = “登录成功”;

}

else

{

message.Text = “用户名或密码错误!”;

}

}

}

“`

在以上代码中,我们首先获取了输入的用户名和密码,并进行非空判断。然后,我们使用“ConfigurationManager.ConnectionStrings[]”方法获取连接字符串,连接到我们的数据库。接着,通过“select”语句查询用户表,检查输入的用户名和密码是否正确。如果正确,则显示登录成功信息,否则显示错误信息。

当用户点击注册按钮时,将进入注册窗口。注册窗口代码如下:

“`xaml

xmlns=”http://schemas.microsoft.com/winfx/2023/xaml/presentation”

xmlns:x=”http://schemas.microsoft.com/winfx/2023/xaml”

xmlns:d=”http://schemas.microsoft.com/expression/blend/2023″

xmlns:mc=”http://schemas.openxmlformats.org/markup-compatibility/2023″

xmlns:local=”clr-namespace:Login”

mc:Ignorable=”d”

Title=”RegisterWindow” Height=”300″ Width=”400″>

“`

在注册窗口中,我们同样使用Grid布局,实现了输入用户名、密码、确认密码和注册按钮。点击注册按钮后,将进行用户信息的验证,并保存到数据库中。注册按钮的点击事件代码如下:

“`csharp

private void registerBtn_Click(object sender, RoutedEventArgs e)

{

string user = username.Text;

string pass = password.Password;

string confirm = confirmPassword.Password;

if (string.IsNullOrEmpty(user) || string.IsNullOrEmpty(pass) || string.IsNullOrEmpty(confirm))

{

message.Text = “用户名或密码不能为空!”;

return;

}

if (pass != confirm)

{

message.Text = “两次输入的密码不一致!”;

return;

}

string connectionString = ConfigurationManager.ConnectionStrings[“DefaultConnection”].ConnectionString;

using (SqlConnection conn = new SqlConnection(connectionString))

{

string cmdText = “insert into users values (@username, @password)”;

SqlCommand cmd = new SqlCommand(cmdText, conn);

SqlParameter paramUsername = new SqlParameter(“@username”, user);

SqlParameter paramPassword = new SqlParameter(“@password”, pass);

cmd.Parameters.Add(paramUsername);

cmd.Parameters.Add(paramPassword);

conn.Open();

try

{

cmd.ExecuteNonQuery();

message.Text = “注册成功”;

}

catch

{

message.Text = “注册失败”;

}

}

}

“`

在以上代码中,我们首先获取了输入的用户名、密码和确认密码,并进行非空和密码一致性校验。然后,我们同样通过“ConfigurationManager.ConnectionStrings[]”方法获取连接字符串,连接到我们的数据库。接着,使用“insert into”语句将用户信息保存到数据库中。如果保存成功,则显示注册成功信息,否则显示注册失败信息。

我们需要将注册窗口和登录窗口进行相互跳转。在MnWindow.xaml.cs中添加以下方法:

“`csharp

private void registerBtn_Click(object sender, RoutedEventArgs e)

{

RegisterWindow registerWindow = new RegisterWindow();

registerWindow.ShowDialog();

}

“`

在以上代码中,我们创建了一个RegisterWindow实例,并使用ShowDialog()方法打开它。ShowDialog()方法用于显示一个模态窗口,即必须先关闭模态窗口才能返回到父窗口。

我们同样可以使用以下代码,在RegisterWindow.xaml.cs中打开登录窗口:

“`csharp

private void backBtn_Click(object sender, RoutedEventArgs e)

{

MnWindow mnWindow = new MnWindow();

mnWindow.Show();

this.Close();

}

“`

在以上代码中,我们创建了一个MnWindow实例,并使用Show()方法打开它。Show()方法用于显示一个非模态窗口,即可以同时打开多个非模态窗口。

一下,本文讲述了如何使用WPF创建用户登录界面,并实现与数据库的交互。我们采用了Grid布局,分别实现了用户名和密码的输入,登录和注册按钮的点击事件,以及提示信息的显示。在数据库交互方面,我们使用了SqlConnection、SqlCommand、SqlParameter和SqlDataReader等类,实现了用户信息的查询和保存。我们通过打开和关闭窗口,在登录窗口和注册窗口之间进行相互跳转。在实际开发中,我们可以根据需要对此进行自定义方法和控件的扩展,实现更丰富、更复杂的应用程序。


数据运维技术 » WPF用户登录界面与数据库交互实现 (wpf用户登录界面数据库)