【自然框架】开源社区活动,会员注册的第一份代码!
2011-04-15 17:23 金色海洋(jyk) 阅读(2660) 评论(28) 编辑 收藏 举报
前情回顾:
自然框架开源社区的第一次活动——实现会员注册
自然框架开发系列(一):自然框架 和 AgileEAS.NET 合作,开发b/s的药店系统!
漫长的期待,终于等来了第一份代码,这份代码由“好坏”提供。十分感谢对活动的支持!他工作也很忙,经常加班,昨天是他第一次不用加班,晚上写到凌晨3点多,10点起来又写到现在才写完。我也是刚刚收到这份代码,简单的看了一下。
项目是按照三层的方式来编写,分成了五个项目。
几个类图:
说明:
- 由于我的数据库设计的原因,导致设计成了三个实体类。这个怪我没说清楚。我的想法是,设计数据库就按照需求和数据库的规则来做;设计实体类,那么就按照需求和面向对象的规则来做。不能相互影响。这个当时没说清楚,给大家带来了不变,表示歉意!这里补充说明一下,同时也期待大家的代码!
- 理解这份代码后,我会提出我的看法,同时也期待大家的意见,不过我们是对代码不对人,目的是给朋友帮忙,而不是找领导的感觉,呵呵。请大家注意了!
=========================================
摘录几段代码,其他的代码可以下载“好坏”的会员注册完整代码。
UI:
protected void btn_Click(object sender, EventArgs e)
{
PersonInfo person = new PersonInfo();
PersonUserInfo puser = new PersonUserInfo();
OSUserInfo osuser = new OSUserInfo();
person.PersonName = TBName.Text;
person.Birthday = Convert.ToDateTime(TBBirthday.Text);
person.IDCard = TBCardNum.Text;
person.Gender = DropDownListGender.SelectedValue;
puser.Email = TBEmail.Text;
puser.UserCode = TBCode.Text;
puser.UserPassword = FormsAuthentication.HashPasswordForStoringInConfigFile(TBPWD.Text,"MD5");
puser.UserPassword2 = puser.UserPassword;
puser.LoginIP = Request.UserHostAddress;
osuser.ProvinceID = Convert.ToInt32(DropDownListProvince.SelectedValue);
osuser.CityID = Convert.ToInt32(DropDownListCity.SelectedValue);
osuser.CountyID = Convert.ToInt32(DropDownListCounty.SelectedValue);
osuser.NikeName = TBNikeName.Text;
string message = "";
bool flag = ir.IsRegistered(person, puser, osuser,ref message);
if (flag)
{
ir.SentEmail(puser);
Response.Redirect("Succeed.aspx");
}
else
{
RegisterStartupScript("show", "<script>window.alert('" + message + "');</script>");
}
}
{
PersonInfo person = new PersonInfo();
PersonUserInfo puser = new PersonUserInfo();
OSUserInfo osuser = new OSUserInfo();
person.PersonName = TBName.Text;
person.Birthday = Convert.ToDateTime(TBBirthday.Text);
person.IDCard = TBCardNum.Text;
person.Gender = DropDownListGender.SelectedValue;
puser.Email = TBEmail.Text;
puser.UserCode = TBCode.Text;
puser.UserPassword = FormsAuthentication.HashPasswordForStoringInConfigFile(TBPWD.Text,"MD5");
puser.UserPassword2 = puser.UserPassword;
puser.LoginIP = Request.UserHostAddress;
osuser.ProvinceID = Convert.ToInt32(DropDownListProvince.SelectedValue);
osuser.CityID = Convert.ToInt32(DropDownListCity.SelectedValue);
osuser.CountyID = Convert.ToInt32(DropDownListCounty.SelectedValue);
osuser.NikeName = TBNikeName.Text;
string message = "";
bool flag = ir.IsRegistered(person, puser, osuser,ref message);
if (flag)
{
ir.SentEmail(puser);
Response.Redirect("Succeed.aspx");
}
else
{
RegisterStartupScript("show", "<script>window.alert('" + message + "');</script>");
}
}
BLL:
public bool IsRegistered(PersonInfo person, PersonUserInfo puser, OSUserInfo osuser, ref string message)
{
if (isUnusedCode(puser.UserCode) == false)
{
message = "账号已被使用,请重新注册!";
return false;
}
if (isUnusedEmail(puser.Email) == false)
{
message = "邮箱已被使用,请重新注册!";
return false;
}
bool flag = dal.insert(person, puser, osuser);
return flag;
}
{
if (isUnusedCode(puser.UserCode) == false)
{
message = "账号已被使用,请重新注册!";
return false;
}
if (isUnusedEmail(puser.Email) == false)
{
message = "邮箱已被使用,请重新注册!";
return false;
}
bool flag = dal.insert(person, puser, osuser);
return flag;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2007-04-15 由猫捉老鼠想起的——关于继承、接口和引用