登入介面介紹
前言
登入系統是我們常常需要用的一項功能,不論是FB、line、購物台等等,都需要驗證使用者的身分,才能正確地傳回使用者的資料。
流程圖
前置作業
使用的資料庫是mysql
myslq網址:https://dev.mysql.com/downloads/windows/visualstudio/
新增一個帳號表單
account | password |
admin | admin |
user | user |
NuGet抓取MaterialSkin
MaterialSkin使用說明
https://github.com/IgnaceMaes/MaterialSkin
會用的程式庫
using MySql.Data;
using MySql.Data.MySqlClient;
using System.Threading;
using MaterialSkin;
using MaterialSkin.Controls;
public partial class Form1 : Form
專案的Form要改MaterialForm
流程
製作畫面
登入畫面
登入成功畫面
程式碼撰寫
判斷資料庫資料是否跟使用者的帳密一樣
using System;
using System.Data;
using System.Windows.Forms;
using MySql.Data;
using MySql.Data.MySqlClient;
using System.Threading;
using MaterialSkin;
using MaterialSkin.Controls;
namespace test
{
public partial class Form1 : MaterialForm
{
static public string loginusername;//全域變數
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string connStr = "server={資料庫IP};uid={資料庫帳號};pwd={資料庫密碼};database={資料庫名稱}";
MySqlConnection conn = new MySqlConnection(connStr); //資料庫連接
try
{
conn.Open();
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
switch (ex.Number)
{
case 0:
MessageBox.Show("無法連線到資料庫.");
break;
case 1045:
MessageBox.Show("使用者帳號或密碼錯誤,請再試一次.");
break;
}
}
string Account = account.Text; //帳號
string Password = password.Text; //密碼
string SQL = "SELECT * FROM test.new_table where account in ('" + Account + "') and password in ('" + Password + "')"; //sql指令
MySqlCommand cmd = new MySqlCommand(SQL, conn); //mysql指令
MySqlDataAdapter adp = new MySqlDataAdapter(cmd); //data偵測
DataSet da = new DataSet(); //dataset
adp.Fill(da, "info"); //資料存入dataset
DataTable table = da.Tables["info"]; //資料存入datatble
//判定帳號是否存在
if (table.Rows.Count >= 1)
{
loginusername = Account; //全域變數紀錄使用者帳號
//建立一個執行序
Thread thread = new Thread(new ThreadStart(delegate()
{
success form = new success();
form.ShowDialog();
}));
thread.Start();
this.Close();
}
else
{
MessageBox.Show("帳號或密碼錯誤");
}
}
}
}
Sucess畫面程式碼
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MaterialSkin;
using MaterialSkin.Controls;
public partial class success : MaterialForm
{
public success()
{
InitializeComponent();
}
private void success_Load(object sender, EventArgs e)
{
label1.Text = "你好," + Form1.loginusername;
}
}
Result
結語
利用mysql及C#程式碼我們就可以製作出簡單的使用者登入介面