C# login登入

登入介面介紹

前言

登入系統是我們常常需要用的一項功能,不論是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#程式碼我們就可以製作出簡單的使用者登入介面