当前位置: 首页 > news >正文

【ASP.NET MVC】使用动软(三)(11)

一、问题

上文中提到,动软提供了数据库的基本操作功能,但是往往需要添加新的功能来解决实际问题,比如GetModel,通过id去查对象:

 这个功能就需要进行改进:往往程序中获取的是实体的其他属性,比如用户登录的时提供账号名和密码,需要根据账户名(唯一)去获取数据库中的实体信息,而不是 id 。

二、解决

通过id查对象和通过其他属性查对象应该是非常类似的,可以 “照葫芦画瓢 ”!

1、先在BLL中添加函数,这里利用的是函数重载(参数类型不同)

 

 对比上下两个函数,参数不同而已。

2、在DAL中先找到GetModel函数

 很显然,拷贝后,简单修改一下就可以使用利用账号名查找 的GetModel函数了

3、添加代码:

 public Maticsoft.Model.user GetModel(string username){StringBuilder strSql=new StringBuilder();strSql.Append("select id,userID,password,userName from user ");strSql.Append(" where userID=@username");MySqlParameter[] parameters = {new MySqlParameter("@userName", MySqlDbType.VarChar)};parameters[0].Value = username;Maticsoft.Model.user model=new Maticsoft.Model.user();DataSet ds=DbHelperMySQL.Query(strSql.ToString(),parameters);if(ds.Tables[0].Rows.Count>0){return DataRowToModel(ds.Tables[0].Rows[0]);}else{return null;}}

DAL里两个函数的关系:

 由此,对动软生成的功能进行了扩展。比如登录时候的验证代码:

       [HttpPost]public ActionResult Login(string msg){JObject jobject = JObject.Parse(msg);string username = (string)jobject["username"];string password = (string)jobject["password"];Maticsoft.BLL.user bll = new Maticsoft.BLL.user();string pwd1 = UserCookie.Encrypt(password);Maticsoft.Model.user mod = bll.GetModel(username);if (mod == null){return Content("error");}if (password != null){string pwd = UserCookie.Encrypt(password);if (pwd == mod.password){UserCookie.WriteCookie(mod);return Content("OK");}elsereturn Content("error");}return Content("error");}

其中: Maticsoft.Model.user mod = bll.GetModel(username);

则是利用提交的用户名(唯一)去获取数据库中对应记录的信息。(拓展功能)

以上有对密码加密、写入Cookie等功能,后文再介绍。

http://www.lryc.cn/news/109246.html

相关文章:

  • 基于MATLAB长时间序列遥感数据植被物候提取与分析
  • K8S deployment 重启的三种方法
  • 解决Linux下PyCharm无法新建文件
  • 规则引擎技术解决方案
  • 2023奇安信天眼设备--面试题
  • 【剑指Offer 58】 左旋转字符串,Java解密。
  • Python SMTP发送邮件
  • Jmeter-获取接口响应头(Response headers)信息进行关联
  • 解密爬虫ip是如何被识别屏蔽的
  • GPIO实验
  • Docker-Compose编排与部署(lnmp实例)
  • Docker 网络模型使用详解 (1)Dockers网络基础
  • 【Spring】(四)Bean 的作用域和生命周期
  • 卷积神经网络【图解CNN】
  • 命令模式 Command Pattern 《游戏设计模式》学习笔记
  • 供水管网漏损监测,24小时保障城市供水安全
  • How to Use Glslang
  • AcWing 24:机器人的运动范围 ← BFS、DFS
  • RF手机天线仿真介绍(一):金属边框天线和LDS天线
  • 动手学深度学习—深度学习计算(层和块、参数管理、自定义层和读写文件)
  • Pytest学习教程_测试报告生成pytest-html(三)
  • 模块化原理:source-map
  • 【C++】开源:ncurses终端TUI文本界面库
  • C语言的_Bool类型
  • 【python爬虫】获取某一个网址下面抓取所有的a 超链接下面的内容
  • AutoDL从0到1搭建stable-diffusion-webui
  • 手动调整broker扩容后的旧topic分区
  • 【LeetCode-简单】剑指 Offer 25. 合并两个排序的链表(详解)
  • Java版工程行业管理系统源码-专业的工程管理软件-em提供一站式服务
  • 【Spring】简化事件的使用,Spring提供了2种使用方式