前言
添加用户是典型的数据库的增操作,其实思路和VB机房没有太大的区别,主要的不同是在于对于七层的理解以及对设计模式的使用!
作为管理员的一个重要只能,那么添加用户的时候,我们的思维一定要严谨,而且各种细节都要注意到位
界面
主要代码
DAL层
public bool addUser(Entity .UserInfo user)
{
SQLHelper sqlhelper = new SQLHelper();//实例化一个SQLHelper
bool flag;//定义一个bool型变量,用来接受返回数据
SqlParameter[] sqlpara =
{
new SqlParameter ("@userID",user.UserID ),
new SqlParameter ("@PWD",user.PassWord ),
new SqlParameter ("@Level",user.Level ),
new SqlParameter ("@UserName",user.UserName ),
};//定义需要传递的参数
string sql = "insert into User_Info(userID,PWD,Level,UserName)values(@UserID,@PWD,@Level,@UserName)";
flag = sqlhelper.ExecuteNonQuery(sql,CommandType.Text,sqlpara);
return flag;
}
IDAL层
定义一个接口,B层直接使用IDAL层的方法,而不用直接调用DAL层的方法,降低了耦合!
bool addUser(Entity.UserInfo UserInfo);
BLL层
它主要是进行业务逻辑判断,和实例化工厂,进行数据库的链接
public bool AddUser(Entity .UserInfo user)
{
//实例化工厂
Factory.Factory fact = new Factory.Factory();
//调用工厂方法创建接口
IDAL.LoginIDAL idal = fact.CreateUser();
bool flag;
flag = idal.addUser(user);
return flag;
}
Facade层
外观层,(外观模式):实例化BLL层,UI层调用Facade中的方法,降低耦合度,更加灵活!
public Boolean AddUser(Entity .UserInfo user)
{
bool flag;
BLL.BLL userBLL = new BLL.BLL();
flag = userBLL.AddUser(user);
return flag;
}
UI层
外观层:界面设计与审查
public void Clear(Control ctrl) //定义一个方法,用来清空控件里的内容
{
foreach (Control c in this.Controls)
{
if (c is TextBox)
{
c.Text = "";
}
if (c is ComboBox)
{
c.Text = "";
}
//c.Text = "";
//Clear(c);
}
}
public void Check(Control ctr1) //定义一个方法,检测是否有信息没有输入
{
foreach(Control a in this.Controls)
{
if(a.Text=="")
{
MessageBox.Show("请把信息输入完整!","提示",MessageBoxButtons.OK, MessageBoxIcon.Warning);
a.Focus();
}
}
}
private void btnEmpty_Click(object sender, EventArgs e)
{
Control a = new Control();
this.Clear(a);
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnOk_Click(object sender, EventArgs e)
{
Control a = new Control();
this.Check(a);
if (txtPassWord.Text !=txtPassWordCheck .Text)//进行密码核验
{
MessageBox.Show("两次密码不一致");
txtPassWord.Text = "";
txtPassWordCheck.Text = "";
txtPassWord.Focus();
}
try
{
Facade.LoginFacade facade = new Facade.LoginFacade();//实例化外观层
Entity.UserInfo user = new Entity.UserInfo();//实例化实体层
user.UserName = txtUserName.Text.Trim();
user.PassWord = txtPassWord.Text.Trim();
user.Level = cmbUserLevel.Text.Trim();
user.UserID = txtUserID.Text.Trim();
Boolean flag = false;
flag = facade.AddUser(user);
if (flag != false)
{
MessageBox.Show("用户添加成功!");
}
else
{
MessageBox.Show("此用户已经注册!");
}
}
catch(Exception)
{
throw;
}
注意
- 在敲代码的时候,多多思考面向对象和面向过程的区别,很多问题都是有很多解决方法的,就看你的是不是最简洁,最全面的!
- 代码理解,尽量写属于自己风格的代码,不要照搬照抄
- 规范化命名,包括控件、属性、方法、接口、类的,都要有属于自己的命名规范,这样的化对于后期的优化肯定有很大的帮助!
- 换位思考,需要考虑用户的需求
- 思维严谨,注意细节,尽量减少自己程序出现bug的概率
总结
这算是机房重构中最简单的窗体了,但也是在理清思路的前提之下,所以我建议大家再敲机房重构的时候,一定要理清思路,做好整体规划,再去进行!
劳逸结合,知道做到!加油!
希望本文对您有所帮助!
有什么不足!欢迎指正!
感觉不错可以赞一下哦!