ADO.NET复习总结(5)--工具类SqlHelper 实现登录
2017-12-26 16:39
489 查看
工具类SqlHelper
即:完成常用数据库操作的代码封装
一、基础知识
1、每次进行操作时,不变的代码:
(1)连接字符串;
(2)往集合存值;
(3)创建连接对象、命令对象;
(4)打开连接;
(5)执行命令
2、每次操作时,变化的代码:
(1)sql语句;
(2)参数
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using t1_UserLogin; namespace login { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnLogin_Click(object sender, EventArgs e) { #region 锁定15分钟-优化 string sql = "select errorcount,errortime,userpwd from userinfo where username=@name"; SqlParameter p = new SqlParameter("@name", txtName.Text); using (SqlDataReader reader = SqlHelper.ExecuteReader(sql, p)) { if (reader.Read()) { //当前用户名存在 int errorCount = Convert.ToInt32(reader["errorCount"]); double errorTime1 = 0; //如果单元格返回空值,使用DBNull.Value进行判断 if (reader["ErrorTime"] != DBNull.Value) { DateTime errorTime = Convert.ToDateTime(reader["errorTime"]); errorTime1 = (DateTime.Now - errorTime).TotalMinutes; } string pwd1 = reader["userPwd"].ToString(); string pwd2 = Md5Helper.Encrypt(txtbwd.Text); if (errorCount >= 3) { //超过3次 if (errorTime1 <= 15) { //过时 MessageBox.Show("锁定"); } else { int count1 = 0; if (pwd1.Equals(pwd2)) { count1 = 0; MessageBox.Show("成功"); } else { count1 = 1; MessageBox.Show("密码错误"); } //字符串拼接 sql = "update userinfo set errorCount=" + count1 + ",errortime=getdate() where username=@name"; p = new SqlParameter("@name", txtName.Text); SqlHelper.ExecuteNonQuery(sql, p); } } else { //不足三次 if (errorTime1 <= 15) { int count1 = 0; if (pwd1.Equals(pwd2)) { count1 = 0; MessageBox.Show("成功"); } else { count1 = errorCount + 1; MessageBox.Show("密码错误"); } sql = "update userinfo set errorCount=" + count1 + ",errortime=getdate() where username=@name"; p = new SqlParameter("@name", txtName.Text); SqlHelper.ExecuteNonQuery(sql, p); } else { int count1 = 0; if (pwd1.Equals(pwd2)) { count1 = 0; MessageBox.Show("成功"); } else { count1 = 1; MessageBox.Show("密码错误"); } sql = "update userinfo set errorcount=" + count1 + ",errortime=getdate() where username=@name"; p = new SqlParameter("@name", txtName.Text); SqlHelper.ExecuteNonQuery(sql, p); } } } else { MessageBox.Show("用户名不存在"); } } #endregion } } }View Code
相关文章推荐
- 告别ADO.NET实现应用系统无缝切换的烦恼(总结篇)
- ADO.NET复习总结(1)--ADO.NET基础介绍
- ADO.NET 使用Connection对象连接数据库实现用户登录
- asp.net -mvc框架复习(9)-实现用户登录控制器和视图的编写并调试
- 告别ADO.NET实现应用系统无缝切换的烦恼(总结篇)
- 整合公司3个网站后台管理子系统的经验总结 - 实现多系统的单点登录(ASP.NET + ASP) 推荐
- ADO.NET复习总结(2)--连接池
- 黑马程序员 C#学习笔记③ ADO.NET实现登录案例
- ADO.NET复习总结(6)-断开式数据操作
- 【C#基础】【ADO.NET】复习、总结
- ado.net复习知识总结
- ADO.NET复习总结(4)--访问SqlServer的类
- asp.net -mvc框架复习(11)-基于三层架构与MVC实现完整的用户登录
- asp.net -mvc框架复习(8)-实现用户登录模型部分的编写
- ADO.NET复习总结(3)--参数化SQL语句--防止sql注入式攻击
- 利用ADO.NET类库结合后台数据库实现登录判断
- [WinForm ADO.NET实现TaskVision][SQL Server 2008][winform datagridview总结][自定义Custom控件]Winform DataGridView各种现有column及自定义column+Winform自定义控件
- 整合公司3个网站后台管理子系统的经验总结 - 实现多系统的单点登录(ASP.NET + ASP)
- 利用QQ互联实现第三方登录总结