WinForm(C#)第一篇:登录页面实现+SQL Server数据库连接方式
来源:互联网 发布:淘宝保证金管理在哪里 编辑:程序博客网 时间:2024/06/03 21:24
- 前言
- 开发环境
- 登录页面前台页面
- 登录页面后台验证
- 成功页面
- 数据库连接核心代码
- 数据库表结构及记录
- 登录测试
- 成功
- 失败
前言
最近见习,要完成的一个作业。主要是WinForm(C#)开发,本想参考网上的Demo,但一直没找到合适入门的,因此打算自己记录一下整个开发过程,给予队友和后面学习的人一些方便。
当然,我也是第一次学习WinForm,技术不够成熟,代码也可能不够优化,希望大神多指教。
代码会开源在GitHub:https://github.com/YEN-GitHub/MES_SimpleDemo,可随时fork/download,我会尽量注释完善,一起共勉。
开发环境
本系列都是一下开发环境,后面的文章不在重复。
系统:Windows 10 家庭版
IDE:Visual studio 2015 Enterprise
数据库:SQL SERVER 2012
GitHub Desktop:3.3.4.0
登录页面前台页面
登录页面后台验证
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace MES_SimpleDemo{ public partial class Login : Form { public Login() { InitializeComponent(); } /**登录验证*/ private void button1_Click(object sender, EventArgs e) { //获取文本框中的值 string username = this.textBox1.Text; string password = this.textBox2.Text; if(username.Equals("") || password.Equals(""))//用户名或密码为空 { MessageBox.Show("用户名或密码不能为空"); } else//用户名或密码不为空 { //到数据库中验证 string selectSql = "select * from tb_user where username='"+username+"' and password='"+password+"'"; SqlHelp sqlHelper = new SqlHelp(); int count = sqlHelper.SqlServerRecordCount(selectSql);//返回符合的结果数量 if (count > 0)//如果信息>0则说明匹配成功 { MessageBox.Show("信息验证成功"); //将当前登录日志信息写入数据库(待开发...) //跳转到主页面 Main view = new Main();//创建一个新页面 view.Show();//显示新页面 this.Hide();//隐藏当前页面 } else { MessageBox.Show("用户名或密码错误"); } } } /**输入框重置*/ private void button2_Click(object sender, EventArgs e) { this.textBox1.Text = ""; this.textBox2.Text = ""; } }}
成功页面
数据库连接核心代码
using System;using System.Data;using System.Configuration;using System.Text.RegularExpressions;using System.Data.SqlClient;using System.IO;using System.Net.Mail;using System.Text;/// <summary>///主要包括sqlHelp数据库访问助手类 和常用的一些函数定义///</summary>///SqlHelp数据库访问助手///1.public static void OpenConn() //打开数据库连接///2.public static void CloseConn() //关闭数据库连接///3.public static SqlDataReader getDataReaderValue(string sql) //读取数据///4.public DataSet GetDataSetValue(string sql, string tableName) //返回DataSet///5.public DataView GetDataViewValue(string sql) //返回DataView///6.public DataTable GetDataTableValue(string sql) //返回DataTable///7.public void ExecuteNonQuery(string sql) //执行一个SQL操作:添加、删除、更新操作///8.public int ExecuteNonQueryCount(string sql) //执行一个SQL操作:添加、删除、更新操作,返回受影响的行///9.public static object ExecuteScalar(string sql) //执行一条返回第一条记录第一列的SqlCommand命令///10.public int SqlServerRecordCount(string sql) //返回记录数///常用函数///1.public static bool IsNumber(string a) //判断是否为数字///2.public static string GetSafeValue(string value) //过滤非法字符namespace MES_SimpleDemo{ class SqlHelp { ///私有属性:数据库连接字符串 ///Data Source=(Local) 服务器地址 ///Initial Catalog=SimpleMESDB 数据库名称 ///User ID=sa 数据库用户名 ///Password=admin123456 数据库密码 private const string connectionString = "Data Source=(Local);Pooling=False;Max Pool Size = 1024;Initial Catalog=SimpleMESDB;Persist Security Info=True;User ID=sa;Password=admin123456"; /// <summary> /// sqlHelp 的摘要说明:数据库访问助手类 /// sqlHelper是从DAAB中提出的一个类,在这里进行了简化,DAAB是微软Enterprise Library的一部分,该库包含了大量大型应用程序 /// 开发需要使用的库类。 /// </summary> public SqlHelp() { //无参构造函数 } public static SqlConnection conn; //打开数据库连接 public static void OpenConn() { string SqlCon = connectionString;//数据库连接字符串 conn = new SqlConnection(SqlCon); if (conn.State.ToString().ToLower() == "open") { } else { conn.Open(); } } //关闭数据库连接 public static void CloseConn() { if (conn.State.ToString().ToLower() == "open") { //连接打开时 conn.Close(); conn.Dispose(); } } // 读取数据 public static SqlDataReader GetDataReaderValue(string sql) { OpenConn(); SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader dr = cmd.ExecuteReader(); CloseConn(); return dr; } // 返回DataSet public DataSet GetDataSetValue(string sql, string tableName) { OpenConn(); SqlDataAdapter da; DataSet ds = new DataSet(); da = new SqlDataAdapter(sql, conn); da.Fill(ds, tableName); CloseConn(); return ds; } // 返回DataView public DataView GetDataViewValue(string sql) { OpenConn(); SqlDataAdapter da; DataSet ds = new DataSet(); da = new SqlDataAdapter(sql, conn); da.Fill(ds, "temp"); CloseConn(); return ds.Tables[0].DefaultView; } // 返回DataTable public DataTable GetDataTableValue(string sql) { OpenConn(); DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter(sql, conn); da.Fill(dt); CloseConn(); return dt; } // 执行一个SQL操作:添加、删除、更新操作 public void ExecuteNonQuery(string sql) { OpenConn(); SqlCommand cmd; cmd = new SqlCommand(sql, conn); cmd.ExecuteNonQuery(); cmd.Dispose(); CloseConn(); } // 执行一个SQL操作:添加、删除、更新操作,返回受影响的行 public int ExecuteNonQueryCount(string sql) { OpenConn(); SqlCommand cmd; cmd = new SqlCommand(sql, conn); int value = cmd.ExecuteNonQuery(); return value; } //执行一条返回第一条记录第一列的SqlCommand命令 public object ExecuteScalar(string sql) { OpenConn(); SqlCommand cmd; cmd = new SqlCommand(sql, conn); object value = cmd.ExecuteScalar(); return value; } // 返回记录数 public int SqlServerRecordCount(string sql) { OpenConn(); SqlCommand cmd = new SqlCommand(); cmd.CommandText = sql; cmd.Connection = conn; SqlDataReader dr; dr = cmd.ExecuteReader(); int RecordCount = 0; while (dr.Read()) { RecordCount = RecordCount + 1; } CloseConn(); return RecordCount; } ///<summary> ///一些常用的函数 ///</summary> //判断是否为数字 public static bool IsNumber(string a) { if (string.IsNullOrEmpty(a)) return false; foreach (char c in a) { if (!char.IsDigit(c)) return false; } return true; } // 过滤非法字符 public static string GetSafeValue(string value) { if (string.IsNullOrEmpty(value)) return string.Empty; value = Regex.Replace(value, @";", string.Empty); value = Regex.Replace(value, @"'", string.Empty); value = Regex.Replace(value, @"&", string.Empty); value = Regex.Replace(value, @"%20", string.Empty); value = Regex.Replace(value, @"--", string.Empty); value = Regex.Replace(value, @"==", string.Empty); value = Regex.Replace(value, @"<", string.Empty); value = Regex.Replace(value, @">", string.Empty); value = Regex.Replace(value, @"%", string.Empty); return value; } }}
数据库表结构及记录
登录测试
成功
失败
今天就先简单的登录页面,其实连上了数据库,之后的就跟Web开发一样的思想,后面将会更新更多功能。
2 0
- WinForm(C#)第一篇:登录页面实现+SQL Server数据库连接方式
- WinForm(C#):登录页面实现+SQL Server数据库连接方式
- 存储图片(C#+Winform+SQL Server)
- 存储图片(C#+Winform+SQL Server)
- sql server 数据库连接方式分析、详解
- sql server 数据库连接方式分析、详解
- C# sql Server 项目数据库连接方式探讨
- sql server 数据库连接方式分析、详解
- 实现手机扫描二维码页面登录,类似web微信-第一篇,业务分析
- SQL Server中的补零 (第一篇)
- SQL Server 学习笔记 第一篇
- Visual C#的SQL Server数据库连接编程
- 【Sql Server学习】Sql Server基础第一篇
- 数据库连接池实现(mysql--sql server)
- struts2学习第一篇 环境配置 之 登录页面
- 改变SQL Server 2005登录方式
- 改变SQL Server 2005登录方式
- 更改SQL Server 2008数据库登录方式
- 平方和立方(难度系数:半颗星)
- 交换排序之快速排序原理、源码及时间、空间复杂度
- VS(Vsual stdio)针对C4996错误解决
- java网络编程(一)
- CF#772 A. Voltage Keepsake(二分)
- WinForm(C#)第一篇:登录页面实现+SQL Server数据库连接方式
- 5-4 jmu-报数游戏 (15分)
- 访问Tomcat服务器返回数据乱码
- make menuconfig 时出现错误 #include CURSES_LOC
- JAVA多线程—Executors类的应用
- c++第四次实验
- 工厂模式实现数据库的操作
- 啊啊啊
- 成为excel高手必须掌握的54个函数