最近在學“機房重構” 做一個網吧系統的開始首先是登錄,然後再是註冊(我的順序是這樣的)。
那麼,接下來我來總結下機房重構 — 註冊窗體設計和代碼(完整)。
1.窗體:
2.代碼
(1).Entity(實體層)
public class UserEntity
{
public string UserID { set; get; }
public string UserName { set; get; }
public string Password { set; get; }
public string Level { set; get; }
public string State { set; get; }
public string Sex { set; get; }
public decimal Cash { set; get; }
public DateTime Date { set; get; }
public DateTime Time { set; get; }
public string WrokrName { set; get; }
}
2.IDAL層(接口層)
//定義註冊時查詢和添加學生信息的接口
public interface IStuIDAL
{
DataTable SelectStu(Entity.UserEntity UserID); //查詢ID是否存在
int AddUser(Entity.UserEntity user); //添加用戶到User表
}
3.DAL
public int AddUser(Entity.UserEntity userinfo)
{
SQLHeIper sqlHeIper = new SQLHeIper();
SqlParameter[] sqlParams = new SqlParameter[]
{
new SqlParameter("@UserID",userinfo.UserID),
new SqlParameter("@PWD",userinfo.Password),
new SqlParameter("@UserName",userinfo.UserName),
new SqlParameter("@Level",userinfo.Level),
new SqlParameter("@State",userinfo.State),
new SqlParameter("@Cash",userinfo.Cash),
new SqlParameter("@Sex",userinfo.Sex),
new SqlParameter("Date",userinfo.Date),
new SqlParameter("Time",userinfo.Time),
};
string sql = "INSERT INTO User_Info(UserID,PWD,UserName,Level,State,Cash,Sex,Date,Time)Values(@UserID,@PWD,@UserNam
e,@Level,@State,@Cash,@Sex,@Date,@Time)";
int result = sqlHeIper.ExecuteNonQuery(sql, sqlParams, CommandType.Text);
return result;
}
(3)BLL(邏輯業務層)
//註冊
public class RegisterBLL
{
//查詢卡號是否被註冊
public DataTable SelectStuBLL(Entity.UserEntity StuInfo)
{
Factory.LogFactory fact = new Factory.LogFactory(); //實例化工廠層
IDAL.IStuIDAL idal = fact.Loguser();
//接收D層的返回值
DataTable table = idal.SelectStu(StuInfo);
return table;
}
//把用戶添加到User_info表中
public int AddUserBLL(Entity.UserEntity user)
{
Factory.LogFactory fact = new LogFactory(); //實例化工廠
IDAL.IStuIDAL idal = fact.Loguser(); //調用工廠方法創建接口
int result = idal.AddUser(user);
return result;
}
}
(5)Factory(工廠層)
//註冊
public class LogFactory
{
string StrDB = System.Configuration.ConfigurationManager.AppSettings["DB"];
public IStuIDAL Loguser()
{
// DAL層的類名
string ClassName = StrDB + "." + "StuDAL";
return (IDAL.IStuIDAL)Assembly.Load(StrDB).CreateInstance(ClassName); //反射加工廠的應用
}
}
(6)Facade(外觀層)
public class RegisterFacade
{
//註冊
//用戶表user_info
public DataTable SelectFacade(Entity.UserEntity user)
{
DataTable flag;
BLL.RegisterBLL selectUser = new RegisterBLL();
flag = selectUser.SelectStuBLL(user);
return flag;
}
//用戶表User_info增加
public int AddFacade(Entity.UserEntity add)
{
int flag;
BLL.RegisterBLL adduser = new RegisterBLL();
flag = adduser.AddUserBLL(add);
return flag;
}
}
(7)UI
private void Button1_Click(object sender, EventArgs e)
{
if (txtCard.Text.Trim() == "" || txtLevel.Text.Trim() == "" || txtName.Text.Trim() == "" || comState.Text.Trim() == ""|| txtLevel.Text.Trim() == "" || comSex.Text.Trim() == "" || txtCash.Text.Trim() == "")
{
MessageBox.Show("請將信息填寫完整", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
if (Convert.ToInt32(txtCash.Text.Trim()) < 10)
{
MessageBox.Show("臨時用戶充值額度不能低於10元!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return; //否則返回
}
if (txtLevel.Text == "VIP用戶")
{
if (Convert.ToInt32(txtCash.Text.Trim()) < 30)
{
MessageBox.Show("VIP用戶充值額度不能低於30元!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return; //否則返回
}
}
//判斷用戶是否存在
//實例化外觀層
Facade.RegisterFacade facade = new Facade.RegisterFacade();
Entity.UserEntity user = new Entity.UserEntity();
user.UserID = Convert.ToString(txtCard.Text.Trim()); //判斷卡號是否存在
DataTable table = facade.SelectFacade(user);
if (table.Rows.Count !=0)
{
MessageBox.Show("此小主已存在", "溫馨提示");
}
else
{
//將輸入的數據存儲到“實體層中”
//開始添加信息到“學生表”中。
user.UserID = Convert.ToString(txtCard.Text.Trim()) ;
user.UserName = txtName.Text.Trim();
user.Password = txtPassword.Text.Trim();
user.Level = txtLevel.Text.Trim();
user.Sex = comSex.Text.Trim();
user.Cash = Convert.ToDecimal(txtCash.Text.Trim());
user.State = "未結賬";
user.Date = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd").Trim()); //日期
user.Time = Convert.ToDateTime(DateTime.Now.ToString("HH:mm:ss").Trim()); //時間
//調用外觀層方法提示註冊成功
facade.AddFacade(user);
MessageBox.Show("註冊成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
//判斷是否註冊成功
}