A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 韦俊琳 中级黑马   /  2013-4-23 10:30  /  1632 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 韦俊琳 于 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 + "'>
复制代码
这样拼不知道对不对,不知道正确的拼法和原理,求教。。。

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

1 个回复

倒序浏览

回帖奖励 +2

1. 如果有大量字符串操作,这么做肯定是很消耗内存的.并且效率低下,所以StringBuilder出现能解决该问题;
2. StringBuilder 有Append和Remove等函数来实现拼接和删除字符串.在操作字符串的时候,他不会再重新实例化一个类,这样可以节省内存,提高效率;
3. 当new一个StringBuilder时就会划分一块内存给StringBuilder实例使用, 当你Append操作时并不会重新分配内存 除非你的新字符串长度超过了StringBuilder实例的默认大小才会重新分配内存。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马