三層架構下實現使用者登陸C#
阿新 • • 發佈:2019-01-07
上篇文章講到三層。接下來就通過一個例項具體的看怎麼用三層實現使用者登陸介面。
一、Model實體(LoginModel):
二、UI層的設計:namespace LoginModel { //新增類:UserInfo Model實體作用:封裝資料,使資料在三層中傳輸 ,更傾向於業務邏輯層 public class UserInfo { //定義使用者屬性 public int ID { get; set; } public string UserName { get; set; } public string Password { get; set; } } }
首先簡單的介面相信大家都會:
接下來是程式碼:
namespace LoginUI { public partial class frmLogin : Form { public frmLogin() { InitializeComponent(); } private void btnLogin_Click(object sender, EventArgs e) { //UI層將使用者輸入資料傳遞給BLL層 string userName = txtUserName.Text.Trim(); string password = txtPassword.Text; LoginBLL.LoginManager mgr = new LoginBLL.LoginManager(); LoginModel.UserInfo user = mgr.UserLogin(userName, password); //將UI層返回業務層傳遞的資料給使用者 MessageBox.Show("登陸使用者:" + user.UserName); } } }
三、BLL層程式碼
四、DAL層 程式碼namespace LoginBLL { public class LoginManager { public LoginModel.UserInfo UserLogin(string userName, string password) { LoginDAL.UserDAO uDao = new LoginDAL.UserDAO();//例項化DAL層 LoginModel.UserInfo user = uDao.SelectUser(userName, password); //不需訪問資料來源直接執行業務邏輯 if (user != null) { return user; } else { throw new Exception("登陸失敗"); } } } }
public class UserDAO
{
public LoginModel.UserInfo SelectUser(string userName, string Password)
{
//建立資料庫連線
string ConnString = @"Server=192.168.24.154;DataBase=機房收費系統人員記錄; User ID=sa; Password=123";
using (SqlConnection conn = new SqlConnection(ConnString))
{
//執行SQL語句進行查詢
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = @"SELECT ID,UserName,Password FROM UserInfo WHERE [email protected] AND [email protected]";
//輸出查詢結果
cmd.CommandType = CommandType.Text;
//新增兩個引數
cmd.Parameters.Add(new SqlParameter(@"UserName", userName));
cmd.Parameters.Add(new SqlParameter(@"Password", Password));
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
LoginModel.UserInfo user = null;
//讀取具體的資料
while (reader.Read())
{
if (user == null)
{
user = new LoginModel.UserInfo();
}
//讀取查詢到的資料
user.ID = reader.GetInt32(0);
user.UserName = reader.GetString(1);
user.Password = reader.GetString(2);
}
return user;
}
}
}
}
登陸:
結果顯示: