新聞中心
WPF(Windows Presentation Foundation)是一種微軟推出的用于創(chuàng)建桌面應(yīng)用程序的框架。它結(jié)合了多媒體、矢量圖形、動(dòng)畫和交互設(shè)計(jì)的強(qiáng)大功能,可以創(chuàng)建出漂亮、交互性強(qiáng)的用戶界面。而數(shù)據(jù)庫(kù)操作是大部分應(yīng)用程序的基礎(chǔ),如何實(shí)現(xiàn)WPF用戶登錄界面與數(shù)據(jù)庫(kù)的交互,本文將進(jìn)行詳細(xì)講解。

我們需要?jiǎng)?chuàng)建一個(gè)WPF應(yīng)用程序。在Visual Studio中選擇“新建項(xiàng)目”,選擇“Visual C#”下的“WPF應(yīng)用程序”。命名為“Login”,點(diǎn)擊“確定”按鈕,即可創(chuàng)建WPF應(yīng)用程序。
接著,在“MnWindow.xaml”中創(chuàng)建用戶登錄界面。我們可以使用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″>
“`
在以上代碼中,我們創(chuàng)建了5個(gè)行和2個(gè)列,分別用來(lái)存儲(chǔ)用戶名、密碼、登錄按鈕、注冊(cè)按鈕和提示信息。其中,用戶名和密碼使用TextBox和PasswordBox控件實(shí)現(xiàn)輸入,登錄和注冊(cè)按鈕使用Button控件實(shí)現(xiàn)交互,提示信息使用TextBlock控件實(shí)現(xiàn)顯示。
接著,我們需要在代碼中實(shí)現(xiàn)登錄按鈕的點(diǎn)擊事件和注冊(cè)按鈕的點(diǎn)擊事件。登錄事件的代碼如下:
“`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 = “用戶名或密碼錯(cuò)誤!”;
}
}
}
“`
在以上代碼中,我們首先獲取了輸入的用戶名和密碼,并進(jìn)行非空判斷。然后,我們使用“ConfigurationManager.ConnectionStrings[]”方法獲取連接字符串,連接到我們的數(shù)據(jù)庫(kù)。接著,通過(guò)“select”語(yǔ)句查詢用戶表,檢查輸入的用戶名和密碼是否正確。如果正確,則顯示登錄成功信息,否則顯示錯(cuò)誤信息。
當(dāng)用戶點(diǎn)擊注冊(cè)按鈕時(shí),將進(jìn)入注冊(cè)窗口。注冊(cè)窗口代碼如下:
“`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″>
“`
在注冊(cè)窗口中,我們同樣使用Grid布局,實(shí)現(xiàn)了輸入用戶名、密碼、確認(rèn)密碼和注冊(cè)按鈕。點(diǎn)擊注冊(cè)按鈕后,將進(jìn)行用戶信息的驗(yàn)證,并保存到數(shù)據(jù)庫(kù)中。注冊(cè)按鈕的點(diǎn)擊事件代碼如下:
“`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 = “注冊(cè)成功”;
}
catch
{
message.Text = “注冊(cè)失敗”;
}
}
}
“`
在以上代碼中,我們首先獲取了輸入的用戶名、密碼和確認(rèn)密碼,并進(jìn)行非空和密碼一致性校驗(yàn)。然后,我們同樣通過(guò)“ConfigurationManager.ConnectionStrings[]”方法獲取連接字符串,連接到我們的數(shù)據(jù)庫(kù)。接著,使用“insert into”語(yǔ)句將用戶信息保存到數(shù)據(jù)庫(kù)中。如果保存成功,則顯示注冊(cè)成功信息,否則顯示注冊(cè)失敗信息。
我們需要將注冊(cè)窗口和登錄窗口進(jìn)行相互跳轉(zhuǎn)。在MnWindow.xaml.cs中添加以下方法:
“`csharp
private void registerBtn_Click(object sender, RoutedEventArgs e)
{
RegisterWindow registerWindow = new RegisterWindow();
registerWindow.ShowDialog();
}
“`
在以上代碼中,我們創(chuàng)建了一個(gè)RegisterWindow實(shí)例,并使用ShowDialog()方法打開(kāi)它。ShowDialog()方法用于顯示一個(gè)模態(tài)窗口,即必須先關(guān)閉模態(tài)窗口才能返回到父窗口。
我們同樣可以使用以下代碼,在RegisterWindow.xaml.cs中打開(kāi)登錄窗口:
“`csharp
private void backBtn_Click(object sender, RoutedEventArgs e)
{
MnWindow mnWindow = new MnWindow();
mnWindow.Show();
this.Close();
}
“`
在以上代碼中,我們創(chuàng)建了一個(gè)MnWindow實(shí)例,并使用Show()方法打開(kāi)它。Show()方法用于顯示一個(gè)非模態(tài)窗口,即可以同時(shí)打開(kāi)多個(gè)非模態(tài)窗口。
一下,本文講述了如何使用WPF創(chuàng)建用戶登錄界面,并實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的交互。我們采用了Grid布局,分別實(shí)現(xiàn)了用戶名和密碼的輸入,登錄和注冊(cè)按鈕的點(diǎn)擊事件,以及提示信息的顯示。在數(shù)據(jù)庫(kù)交互方面,我們使用了SqlConnection、SqlCommand、SqlParameter和SqlDataReader等類,實(shí)現(xiàn)了用戶信息的查詢和保存。我們通過(guò)打開(kāi)和關(guān)閉窗口,在登錄窗口和注冊(cè)窗口之間進(jìn)行相互跳轉(zhuǎn)。在實(shí)際開(kāi)發(fā)中,我們可以根據(jù)需要對(duì)此進(jìn)行自定義方法和控件的擴(kuò)展,實(shí)現(xiàn)更豐富、更復(fù)雜的應(yīng)用程序。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來(lái)專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線:028-86922220wpf 實(shí)時(shí)加載數(shù)據(jù)庫(kù)中的數(shù)據(jù)
做笑返個(gè)服務(wù)器端程序,來(lái)負(fù)責(zé)通知客戶端取數(shù)據(jù)庫(kù)。
正確的吵游流程:數(shù)據(jù)==》服務(wù)器端程序==》寫數(shù)據(jù)庫(kù)。
服務(wù)器端程序判斷數(shù)據(jù)是否更改,如果更改==>WPF客戶端。
wpf客戶端數(shù)據(jù)來(lái)源服務(wù)器端程序。直接連數(shù)升升銷據(jù)庫(kù)的wpf程序沒(méi)有服務(wù)器端程序的幫助,沒(méi)辦法實(shí)現(xiàn)實(shí)時(shí)性的。
wpf用戶登錄界面數(shù)據(jù)庫(kù)的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于wpf用戶登錄界面數(shù)據(jù)庫(kù),WPF用戶登錄界面與數(shù)據(jù)庫(kù)交互實(shí)現(xiàn),wpf 實(shí)時(shí)加載數(shù)據(jù)庫(kù)中的數(shù)據(jù)的信息別忘了在本站進(jìn)行查找喔。
成都網(wǎng)站建設(shè)選創(chuàng)新互聯(lián)(?:028-86922220),專業(yè)從事成都網(wǎng)站制作設(shè)計(jì),高端小程序APP定制開(kāi)發(fā),成都網(wǎng)絡(luò)營(yíng)銷推廣等一站式服務(wù)。
分享標(biāo)題:WPF用戶登錄界面與數(shù)據(jù)庫(kù)交互實(shí)現(xiàn)(wpf用戶登錄界面數(shù)據(jù)庫(kù))
本文路徑:http://m.fisionsoft.com.cn/article/cdhoojj.html


咨詢
建站咨詢
