最近在学“机房重构” 做一个网吧系统的开始首先是登录,然后再是注册(我的顺序是这样的)。
那么,接下来我来总结下机房重构 — 注册窗体设计和代码(完整)。
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);
}
//判断是否注册成功
}