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

C#为任意组件开发登录功能的记录

非常简单,直接给出代码:

数据库操作类

这个无需多言就是简单的包含了数据操作的内容,允许你在这一个类中写完关于本地数据库或者云数据库操作的逻辑,与登录逻辑分开哦。

注意,如果你的软件要给别人运行使用,你的数据库信息也可以存在授权文件中,以避免出现信息的泄露。如果你使用软件直接操作数据库可能存在危险,请注意连接数据库时对sql语句的检查。

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace chuankouzhushou1
{internal class dataoperator{private static string connString = @"Data Source=DREAMER;Database=db_Mydb;User ID=sa;Pwd=yourpasswd;";public static SqlConnection connection = new SqlConnection(connString);public int ExecuteSQL(string sql){SqlCommand cmd = new SqlCommand(sql, connection);if (connection.State == ConnectionState.Closed)connection.Open();int num = Convert.ToInt32(cmd.ExecuteScalar());        //执行查询connection.Close();return num;}public int ExecuteSQLResult(string sql){SqlCommand cmd = new SqlCommand(sql, connection);if (connection.State == ConnectionState.Closed)connection.Open();int result = cmd.ExecuteNonQuery();connection.Close();return result;}public DataSet GetDataSet(string sql){SqlDataAdapter sqlda = new SqlDataAdapter(sql, connection);    //指定要执行的SQL语句DataSet ds = new DataSet();sqlda.Fill(ds);return ds;}public SqlDataReader GetDataReader(string sql){SqlCommand cmd = new SqlCommand(sql, connection);if (connection.State == ConnectionState.Closed)connection.Open();SqlDataReader dataReader = cmd.ExecuteReader();//添加参数CommandBehavior.CloseConnection就可以自动释放连接return dataReader;}}
}

输入的监测 

 private bool ValidateInput(){if (tx_ID.Text.Trim() == "")                            //登录账号{MessageBox.Show("请输入登录账号", "登录提示", MessageBoxButtons.OK, MessageBoxIcon.Information);tx_ID.Focus();                                    //使登录账号文本框获得鼠标焦点return false;}else if (tx_ID.Text.Length>30){MessageBox.Show("请输入正确的登录账号", "登录提示", MessageBoxButtons.OK, MessageBoxIcon.Information);tx_ID.Focus();                                    //使登录账号文本框获得鼠标焦点return false;}else if (tx_ID.Text.Length > 5 && tx_PWD.Text.Trim() == "")   //密码{MessageBox.Show("请输入密码", "登录提示", MessageBoxButtons.OK, MessageBoxIcon.Information);tx_PWD.Focus();                                    //使密码文本框获得鼠标焦点return false;}return true;}

 登录按钮(回车实现登录)

private void loginbtn(object sender, EventArgs e){if(ValidateInput()){int num= 0;string sql = "select count(*) from usertb where userid=" + int.Parse(tx_ID.Text.Trim()) + " and userpwd = '" + tx_PWD.Text.Trim() + "'";try{num = dbop.ExecuteSQL(sql);}catch {//MessageBox.Show(e.ToString());}   if (num == 1)//验证通过{publicinfo.userid = int.Parse(tx_ID.Text.Trim());// 执行新的SQL查询来获取userid,username和userlvsql = "select userid, username, userlv from usertb where userid=" + publicinfo.userid;SqlDataReader reader = dbop.GetDataReader(sql);if (reader.Read()){publicinfo.userid = reader.GetInt32(0);publicinfo.username = reader.GetString(1);publicinfo.userlv = reader.GetInt32(2);}reader.Close();mainfrm frm_Main = new mainfrm();frm_Main.Show();this.Visible = false;}else{MessageBox.Show("登录失败!", "登录提示", MessageBoxButtons.OK, MessageBoxIcon.Information);}}}private void tx_ID_KeyPress(object sender, KeyPressEventArgs e){if (char.IsDigit(e.KeyChar) || (e.KeyChar == '\r') || (e.KeyChar == '\b'))e.Handled = false;elsee.Handled = true;}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • SpringBoot 数据库表结构文档生成
  • mysql mha高可用集群搭建
  • 【多线程】CAS的原理及应用,看这篇文章就够啦
  • Elasticsearch集群的运维与管理
  • Kafka 为什么这么快?
  • 黑客是如何绕过ssh登录目标站点
  • 【linux】4张卡,坏了1张,怎么办?
  • Vue使用代理方式解决跨域问题
  • 【Git】Git Commit Angular规范详解
  • win10下使用docker、k8s部署java应用
  • 【HTML元素居中】元素水平垂直居中的常用方法
  • ‌内网穿透技术‌总结
  • Python知识点:使用Cython进行Python性能优化
  • VSCode 离线安装中文语言包
  • 基于springboot+vue超市管理系统
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【附node操作实例】redis简明入门系列—字符串类型
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • HTTP 简介
  • Java 23种设计模式 之单例模式 7种实现方式
  • JavaScript-Array类型
  • Java反射-动态类加载和重新加载
  • java正则表式的使用
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • Redis 中的布隆过滤器
  • VUE es6技巧写法(持续更新中~~~)
  • Web Storage相关
  • 阿里研究院入选中国企业智库系统影响力榜
  • 猴子数据域名防封接口降低小说被封的风险
  • 扑朔迷离的属性和特性【彻底弄清】
  • 前端之React实战:创建跨平台的项目架构
  • 区块链共识机制优缺点对比都是什么
  • 探索 JS 中的模块化
  • 无服务器化是企业 IT 架构的未来吗?
  • 小试R空间处理新库sf
  • 学习使用ExpressJS 4.0中的新Router
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • ###STL(标准模板库)
  • #define、const、typedef的差别
  • $().each和$.each的区别
  • (4) PIVOT 和 UPIVOT 的使用
  • (C#)获取字符编码的类
  • (C++17) optional的使用
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (ZT)薛涌:谈贫说富
  • (二)Kafka离线安装 - Zookeeper下载及安装
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (六)vue-router+UI组件库
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (四)activit5.23.0修复跟踪高亮显示BUG
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)