最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

[C#學習筆記29]項目實戰(zhàn)之通用登錄模塊的完整業(yè)務(wù)流程和實現(xiàn)過程詳解

2020-10-26 10:30 作者:技術(shù)龍的傳人  | 我要投稿

課程管理系統(tǒng)統(tǒng)一通用登錄模塊實現(xiàn)

一、登錄的要求

????用戶輸入賬號和密碼,如有問題系統(tǒng)應(yīng)該提示相關(guān)賬號錯誤,用戶修改后,再次登錄,如果賬號和密碼正確,則顯示主窗體,同時在主窗體右上角顯示當前登錄用戶名。

二、登錄的實現(xiàn)

????1、數(shù)據(jù)訪問方法(用戶登錄)編寫

TeacherService.cs內(nèi)容如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;


using System.Data;

using System.Data.SqlClient;

using CourseManageModels;


namespace CourseManageDAL

{

? ? /// <summary>

? ? /// 講師訪問類

? ? /// </summary>

? ? ?public class TeacherService

? ? {

? ? ? ? //不懂程序、OOP的人采用的方法

? ? ? ? //public bool TeacherLogin(string loginAccount, string pwd)

? ? ? ? //{}


? ? ? ? /// <summary>

? ? ? ? /// 講師登錄

? ? ? ? /// </summary>

? ? ? ? /// <param name="teacher"></param>

? ? ? ? /// <returns></returns>

? ? ? ? public Teacher TeacherLogin(Teacher teacher)

? ? ? ? {

? ? ? ? ? ? //【1】封裝SQL語句

? ? ? ? ? ? string sql = $"select TeacherName,TeacherId from Teacher where loginAccount='{teacher.LoginAccount}' and LoginPwd='{teacher.LoginPwd}'";


? ? ? ? ? ? //【2】提交查詢

? ? ? ? ? ? SqlDataReader reader = SQLHelper.GetReader(sql);


? ? ? ? ? ? //【3】判斷登錄是否正確,如果正確就封裝ID和Name

? ? ? ? ? ? if(reader.Read())

? ? ? ? ? ? {

? ? ? ? ? ? ? ? teacher.TeacherId = (int)reader["TeacherId"];

? ? ? ? ? ? ? ? teacher.TeacherName = reader["TeacherName"].ToString();

? ? ? ? ? ? }

? ? ? ? ? ? else

? ? ? ? ? ? {

? ? ? ? ? ? ? ? teacher = null;//賬號或密碼不正確

? ? ? ? ? ? }

? ? ? ? ? ? return teacher;

? ? ? ? }

? ? }

}


????2、業(yè)務(wù)邏輯方法

TeacherManage.cs內(nèi)容如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;


using System.Data;

using System.Data.SqlClient;

using CourseManageModels;


namespace CourseManageDAL

{

? ? /// <summary>

? ? /// 講師訪問類

? ? /// </summary>

? ? ?public class TeacherService

? ? {

? ? ? ? //不懂程序、OOP的人采用的方法

? ? ? ? //public bool TeacherLogin(string loginAccount, string pwd)

? ? ? ? //{}


? ? ? ? /// <summary>

? ? ? ? /// 講師登錄

? ? ? ? /// </summary>

? ? ? ? /// <param name="teacher"></param>

? ? ? ? /// <returns></returns>

? ? ? ? public Teacher TeacherLogin(Teacher teacher)

? ? ? ? {

? ? ? ? ? ? //【1】封裝SQL語句

? ? ? ? ? ? string sql = $"select TeacherName,TeacherId from Teacher where loginAccount='{teacher.LoginAccount}' and LoginPwd='{teacher.LoginPwd}'";


? ? ? ? ? ? //【2】提交查詢

? ? ? ? ? ? SqlDataReader reader = SQLHelper.GetReader(sql);


? ? ? ? ? ? //【3】判斷登錄是否正確,如果正確就封裝ID和Name

? ? ? ? ? ? if(reader.Read())

? ? ? ? ? ? {

? ? ? ? ? ? ? ? teacher.TeacherId = (int)reader["TeacherId"];

? ? ? ? ? ? ? ? teacher.TeacherName = reader["TeacherName"].ToString();

? ? ? ? ? ? }

? ? ? ? ? ? else

? ? ? ? ? ? {

? ? ? ? ? ? ? ? teacher = null;//賬號或密碼不正確

? ? ? ? ? ? }

? ? ? ? ? ? return teacher;

? ? ? ? }

? ? }

}

????3、UI調(diào)用業(yè)務(wù)邏輯(登錄的事件)

FrmAdminLogin.cs文件中內(nèi)容如下:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;


using CourseManageModels;

using CourseManageBLL;


namespace CourseManageUI

{

? ? public partial class FrmAdminLogin : Form

? ? {

? ? ? ? private TeacherManager teacherManager = new TeacherManager();

? ? ? ? public FrmAdminLogin()

? ? ? ? {

? ? ? ? ? ? InitializeComponent();

? ? ? ? }


? ? ? ? private void btnClose_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? this.Close();

? ? ? ? }


? ? ? ? #region 窗體移動

? ? ? ? private Point mouseOff;

? ? ? ? private bool leftFlag;


? ? ? ? private void frmLogin_MouseDown(object sender, MouseEventArgs e)

? ? ? ? {

? ? ? ? ? ? if (e.Button == MouseButtons.Left)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? mouseOff = new Point(-e.X, -e.Y);

? ? ? ? ? ? ? ? leftFlag = true;

? ? ? ? ? ? }

? ? ? ? }


? ? ? ? private void frmLogin_MouseMove(object sender, MouseEventArgs e)

? ? ? ? {

? ? ? ? ? ? if (leftFlag)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? Point mouseSet = Control.MousePosition;

? ? ? ? ? ? ? ? mouseSet.Offset(mouseOff.X, mouseOff.Y);

? ? ? ? ? ? ? ? Location=mouseSet;

? ? ? ? ? ? }

? ? ? ? }


? ? ? ? private void frmLogin_MouseUp(object sender, MouseEventArgs e)

? ? ? ? {

? ? ? ? ? ? if (leftFlag)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? leftFlag = false;

? ? ? ? ? ? }

? ? ? ? }


? ? ? ? #endregion 窗體移動

? ? ? ? //登錄按鈕

? ? ? ? private void btnLogin_Click(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? //【1】輸入驗證

? ? ? ? ? ? if(this.txtLoginName.Text.Trim().Length == 0)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? MessageBox.Show("請輸入登錄賬號!","提示信息");

? ? ? ? ? ? ? ? this.txtLoginName.Focus();

? ? ? ? ? ? ? ? return;

? ? ? ? ? ? }

? ? ? ? ? ? if(this.txtLoginPwd.Text.Trim().Length == 0)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? MessageBox.Show("請輸入登錄密碼","提示信息");

? ? ? ? ? ? ? ? this.txtLoginPwd.Focus();

? ? ? ? ? ? ? ? return;

? ? ? ? ? ? }

? ? ? ? ? ? //PS:在實際開發(fā)中,可以進一步驗證郵箱格式、密碼長度、非法字符等...


? ? ? ? ? ? //【2】封裝登錄實體信息

? ? ? ? ? ? Teacher teacher = new Teacher()

? ? ? ? ? ? {

? ? ? ? ? ? ? ? LoginAccount = this.txtLoginName.Text.Trim(),

? ? ? ? ? ? ? ? LoginPwd = this.txtLoginPwd.Text.Trim()

? ? ? ? ? ? };

? ? ? ? ? ? //【3】調(diào)用后臺登錄邏輯

? ? ? ? ? ? teacher = teacherManager.TeacherLogin(teacher);


? ? ? ? ? ? //【4】驗證登錄是否成功

? ? ? ? ? ? if(teacher != null)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? //若登錄成功,先保存登錄信息(保存到全局變量中,以備后續(xù)使用)

? ? ? ? ? ? ? ? Program.currentTeacher = teacher;


? ? ? ? ? ? ? ? //在實際開發(fā)項目中還需要考慮以下內(nèi)容:

? ? ? ? ? ? ? ? //1、賬號有效性

? ? ? ? ? ? ? ? //2、用戶的權(quán)限

? ? ? ? ? ? ? ? //3、登錄日志保存

? ? ? ? ? ? ? ? //4、是否保存一定時間登錄信息(通過序列化方式完成)


? ? ? ? ? ? ? ? //設(shè)置窗體的返回值

? ? ? ? ? ? ? ? this.DialogResult = DialogResult.OK;

? ? ? ? ? ? ? ? this.Close();

? ? ? ? ? ? }

? ? ? ? ? ? else

? ? ? ? ? ? {

? ? ? ? ? ? ? ? MessageBox.Show("登錄賬號或密碼錯誤!","登錄提示");

? ? ? ? ? ? }

? ? ? ? }

? ? }

}



[C#學習筆記29]項目實戰(zhàn)之通用登錄模塊的完整業(yè)務(wù)流程和實現(xiàn)過程詳解的評論 (共 條)

分享到微博請遵守國家法律
灵山县| 逊克县| 方城县| 祁门县| 华池县| 万盛区| 连州市| 鄂温| 光泽县| 青川县| 阳高县| 金平| 西充县| 高台县| 潜山县| 普定县| 阳江市| 宜宾县| 陇西县| 花莲县| 福海县| 酉阳| 天全县| 新和县| 富民县| 鹿邑县| 西乌珠穆沁旗| 麟游县| 蒲江县| 缙云县| 北京市| 江山市| 东光县| 渝中区| 仁化县| 石楼县| 西宁市| 清新县| 鄂托克前旗| 山西省| 仲巴县|