黑马程序员技术交流社区

标题: 关于三层架构的问题,求学习... [打印本页]

作者: 韦俊琳    时间: 2013-4-23 10:30
标题: 关于三层架构的问题,求学习...
本帖最后由 韦俊琳 于 2013-4-23 10:35 编辑

问题1:在三层架构的用户注册和邮箱验证模块中,我首先要将用户注册的Name,Password等几个字段添加到Users表中,用户的ID在数据表中定义为自增。然后添加无异常后再给用户分配响应码
  1. //创建用户Model
  2. Model.Users model = new Model.Users();
  3. model.Name = this.txtUser.Text;
  4. model.Password = this.txtPwd.Text;
  5. model.Email = this.txtEmail.Text;
  6. //创建用户BLL
  7. BLL.Users bll = new BLL.Users();
  8. //添加进数据库,不考虑插入异常
  9. bll.Add(model);

  10. //分配响应码
  11. string activecode = Guid.NewGuid().ToString().Substring(0,8);
  12. model.ActiveCode = activecode;
  13. model.Actived = "false";
  14. bll.Update(model);
  15. int id = model.ID;
  16. //通过ID获取该用户Model
  17. BLL.Users bll2 = new BLL.T_buyer();
  18. Model.Users model2 = bll2.GetModel(id);
复制代码
结果是从Update开始执行无效(没报错),也获取不到id,不知道上述哪个步骤有问题,求学习!

问题2:在发送给用户的验证邮件中,用StringBuilder拼接出URL的问题:
  1. StringBuilder builder =new StringBuilder();
  2. builder.Append("<a href='http://localhost:8963/ashx/Active.ashx?activeCode=" + activeCode + "&id=" + id + "'>
复制代码
这样拼不知道对不对,不知道正确的拼法和原理,求教。。。


作者: 许庭洲    时间: 2013-4-23 21:11
1. 如果有大量字符串操作,这么做肯定是很消耗内存的.并且效率低下,所以StringBuilder出现能解决该问题;
2. StringBuilder 有Append和Remove等函数来实现拼接和删除字符串.在操作字符串的时候,他不会再重新实例化一个类,这样可以节省内存,提高效率;
3. 当new一个StringBuilder时就会划分一块内存给StringBuilder实例使用, 当你Append操作时并不会重新分配内存 除非你的新字符串长度超过了StringBuilder实例的默认大小才会重新分配内存。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2