源代码:13033480群共享

如果我说,“编程,与编程无关”,你一定觉得不可思议;那,你又如何理解网上那句非常流行的名言,“我爱你,与你无关”?

讲一个真实的故事吧,我原来在企业的时候,单位有个专职翻译,他曾把一个有2万词汇量的词典交给我,让我随便问。我问了,他真的一个都没记错。

后来,总工把一个设备使用说明交给我,让我翻译,我一个晚上,9点—12点,3个小时,很轻松地翻好,交给了总工。(为此,总工欣赏了我好几年,直到我调走,仍然无私关怀,这里,再次深深地说一声:谢谢!)

后来,我又知道,在我之前,这个翻译,已经翻了一个月了,没翻出来......

难道,翻译,与翻译无关????

我英语,自然烂得很,这个,不是谦虚;而这套设备,我差不多已经玩烂了,这个也不是谦虚!

这是让我翻这个使用说明,我用了三个小时,如果让我自己写一个使用说明,我一个小时都不需要!

这个故事告诉我,玩烂一个东西,再写这个东西,比什么都重要。

现在,让我们玩玩这个登录系统吧......

一、登录系统的使用逻辑

运行一下这个登录程序,其实逻辑是这样的:

1、在文本框如分别输入用户名和密码;

2、点击“注册”按钮,如果:

(1)用户名、密码正确,就跳转到了Default.aspx;

(2)用户名或密码不正确,就弹出一个消息框,提示用户名或密码错误。

二、登录系统的实现逻辑

熟悉了登录系统的使用逻辑,也就有了它的实现逻辑:

在点击“登录”按钮时,

1、获取用户名和密码对应文本框中输入的值txtUserName.Text和txtPassword.Text;

2、查询数据库NetShop中表Users中用户名为txtUserName.Text,密码为txtPassword.Text的项,获得一个SqlDataReader;

3、判断这个SqlDataReader是否为空,如果:

(1)SqlDataReader不为空,就跳转到Default.aspx;

(2)SqlDataReader为空,就弹出消息框,提示“用户名或密码错误!”。

很多语言都有登录系统,这些登录的逻辑,都是这个逻辑。也就是说,你按照这个逻辑编程,而与使用什么语言编,一点关系都没有,不是吗??

有人已经看出来了,这个逻辑,其实就是“算法”,谭浩强早就指出“算法才是编程的灵魂”!

(其实,我更喜欢把这种所谓的算法,叫做“解决问题的步骤”)

下面我们看看,ASP.NET使用C#是怎么实现这个逻辑的:

protected void btnLogin_Click(object sender, EventArgs e)
{bool blIsAuthenticated = false;string strConnection = ConfigurationManager.ConnectionStrings["NetShopConnString"].ConnectionString.ToString();SqlCommand cmd = new SqlCommand();using (SqlConnection conn = new SqlConnection(strConnection)){conn.Open();cmd.Connection = conn;cmd.CommandType = CommandType.Text;cmd.CommandText = "SELECT UserName FROM Users WHERE UserName='" + txtUserName.Text + "' AND Password='" + txtPassword.Text + "'";SqlDataReader rdr = cmd.ExecuteReader();if (rdr.Read()){blIsAuthenticated = true;}rdr.Close();}if (blIsAuthenticated == true){Session["UserName"] = txtUserName.Text;Response.Redirect("Default.aspx");}else{Response.Write("<script>alert('用户名或密码错误!')</script>");}
}

这个代码里,我使用了using()结构;使用了比较成熟的登录系统特有的一个变量blIsAuthenticated来判断是否登录成功;使用了类ConfigurationManager从Web.config中读取连接字符串。如果,我直接使用前面讲的最基本的数据库连接代码,你会看到,那将会是直接使用计算机语言来翻译我前面的实现逻辑了。

这个登录系统的结构,在这里,就略一下吧......

写诗的人常会说,“功夫在诗外”,相信这句话吧,编程,功夫在编程之外......

版权所有©2012,WestGarden.欢迎转载,转载请注明出处.更多文章请参阅博客http://www.cnblogs.com/WestGarden/

转载于:https://www.cnblogs.com/WestGarden/archive/2012/05/21/2511528.html

我爱你,与你无关——登录系统的逻辑与结构相关推荐

  1. 从前后端交互逻辑出发、基于企业开发标准,Web微信授权登录系统开发项目分享

    背景 首先,在网页中开发第三方登录系统的案例越来越多,用户的操作习惯也逐渐被引导改变,更加简洁有效的登录交互系统将会成为网页开发中必要的一环.从项目的用户使用背景.微信公众号的开发模式.企业代码的标准 ...

  2. Django 可重用注册登录系统

    文章目录 一.可重用注册登录系统 1.项目开始前的思考 2.搭建项目环境 3.设计数据库模型 1)数据库模型文件 2)设置数据库后端 3)注册app 4)生成迁移脚本并写入数据库 5)测试是否成功 6 ...

  3. 统一用户单点登录系统

    see also:http://www.ibmtech.com.cn/dandian.html 统一用户单点登录的基本原理 一般来说,每个应用系统都拥有独立的用户信息管理功能,用户信息的格式.命名与存 ...

  4. 登陆成功率 99%,云知声携手平安好医生推声纹登录系统

    近日,云知声宣布与医疗健康生态平台平安好医生(01833.HK)共同研发的"声纹登录系统"(又称声纹锁)经过多次模型优化和升级迭代后,登录成功率接近 99%,达行业一流水准. 声纹 ...

  5. java简单springboot系统_Springboot系列 3 - 建立简单的用户登录系统

    在开始编码前,先建立几个Package(可以按个人习惯命名),如图 1.Controllers 用于存放控制器类 2.Models 用于存放数据实体类 3.Repositories 用于存放数据库操作 ...

  6. 单点登录系统实现基于SpringBoot

    今天的干货有点湿,里面夹杂着我的泪水.可能也只有代码才能让我暂时的平静.通过本章内容你将学到单点登录系统和传统登录系统的区别,单点登录系统设计思路,Spring4 Java配置方式整合HttpClie ...

  7. 基于struts2的登录系统

    web.xml配置 <?xml version="1.0" encoding="UTF-8"?> <web-app version=" ...

  8. javaweb登录系统账号密码验证等

    javaweb实现登录系统,登陆系统界面,servlet跳转,登录过程中error错误信息获取 涉及内容(适合初学javaweb者): javaweb MySQL servlet jsp 项目导航 运 ...

  9. 设计一个可扩展的用户登录系统

    在Web系统中,用户登录是最基本的功能.如何设计一个可扩展的用户登录系统呢?本文结合实际案例对用户登录系统设计进行多维度的讲解,帮助各设计者在应用中将复杂变得简单. 来源:廖雪峰的官方网站,作者:廖雪 ...

最新文章

  1. 终于“打造”出了一个可以随时随地编程的工具
  2. 用eclipse来运行带参数的命令行程序,配置命令行程序的参数
  3. Silverlight实用窍门系列:35.细解Silverlight冒泡路由事件和注册冒泡路由事件【附带实例源码】...
  4. Extjs4 tab添加右键刷新功能
  5. poj1201Intervals(差分约束)
  6. 【学习笔记】redis一些配置文件参数详解
  7. nginx-配置基于ip或域名的虚拟主机
  8. java学习(69):java模式设计之适配器
  9. python 实现统计ftp服务器指定目录下文件夹数目、文件数目及所有文件大小 本次主要为满足应用方核对上传到ftp服务器的文件是否缺漏。 主要要求:指定目录下,文件夹数目/文件数目/所有文件大小
  10. 网易有道上市首日股价跌26% 市值达14亿美元
  11. pmp培训机构哪个好?各pmp培训机构排名如何?
  12. 纯HTML个人简历模板代码
  13. html+antd 本地化
  14. 什么是搜索引擎营销(SEM)?
  15. Xshell6、Xftp6要继续使用此程序,您必须应用最新的更新或使用新版本
  16. MSP430F5529-定时器介绍
  17. 转载:深度工作:充分使用每一份脑力
  18. SEO新人如何做网站诊断和策划
  19. iPhone7如何远程控制Linux,iPhone 7成功引导postmarketOS,首款苹果Linux智能手机
  20. 第五十七周总结——坎坎坷坷的一周

热门文章

  1. 计算机视觉与深度学习 | Matlab实现ORBSLAM2(附完整代码)
  2. 无空头链表详解(增删改查)
  3. 图解TCP数据报结构以及三次握手(非常详细)
  4. 用友二次开发_详解ERP系统与MES系统的数据传递——永康用友
  5. C指针原理(39)-GLIB
  6. 【数据竞赛】可能是全网特征工程实操最通透的...
  7. 【Python】全方面解读Python的格式化输出
  8. 【Python】精选23个Pandas常用函数
  9. 【GNN】谷歌、阿里、腾讯等在大规模图神经网络上必用的GNN加速算法
  10. 【机器学习】一文全览机器学习建模流程(Python代码)