WinForm(C#)第一篇:登录页面实现+SQL Server数据库连接方式
2017-04-21 00:15
906 查看
前言
开发环境
登录页面前台页面
登录页面后台验证
成功页面
数据库连接核心代码
数据库表结构及记录
登录测试
成功
失败
当然,我也是第一次学习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
今天就先简单的登录页面,其实连上了数据库,之后的就跟Web开发一样的思想,后面将会更新更多功能。
开发环境
登录页面前台页面
登录页面后台验证
成功页面
数据库连接核心代码
数据库表结构及记录
登录测试
成功
失败
前言
最近见习,要完成的一个作业。主要是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开发一样的思想,后面将会更新更多功能。
相关文章推荐
- Unity C# 连接SQL Server数据库,实现获取和添加登录注册的用户列表
- ASP.NET C# 连接SQL SERVER数据库 实现用户注册页面
- C#连接 SQL server数据库 数据库是Windows验证方式登录的
- C# 设置IE Cookie 从而实现自动打开需要登录的页面
- C#WinForm应用程序实现自动填充网页上的用户名和密码并点击登录按钮【转载】
- C# 以附加文件方式连接SQL Server数据库文件
- C# 连接SQL Server数据库的几种方式--server+data source等方式
- 【WINFORM】C#中不通过浏览页面直接登入博客园的实现
- MFC实现登录对话框连接access数据库方式
- C# 连接SQL Server数据库的几种方式--server+data source等方式
- BLOCK方式实现OC程序中多个页面判定用户是否登录
- C# 连接SQL Server数据库的几种方式--server+data source等方式
- C# winform 登录窗体 记住密码的实现 --来源http://www.cnblogs.com/ou444/archive/2011/09/13/2174911.html
- 实现手机扫描二维码页面登录,类似web微信-第一篇,业务分析
- C#Winform实现登陆的两种方式
- C#连接SQL SERVER数据库的登录窗口
- C#连接SQL Server数据库的四种方式
- 在c#的winform登录窗体中,如何实现窗口验证码
- asp.net c#采集需要登录页面的实现原理及代码
- C# Winform中实现主窗口打开登录窗口关闭的方法