目录
- winform窗体应用程序,实现注册和登录功能
- 1.1.开发环境:Visual Studio 2019 + SQL Server 2012 Management Studio
- 1.2.winform基本窗体界面
- 1.3.DBHelper类
- 1.4.建立数据库
- 1.5.主要功能代码
- 总结
winform窗体应用程序,实现注册和登录功能
1.1.开发环境:Visual Studio 2019 + SQL Server 2012 Management Studio
1.2.winform基本窗体界面
registeForm注册界面
loginForm登录界面
1.3.DBHelper类
DBHelper从字面上理解为“数据库帮助类”,在这里主要是进行winform窗体应用程序和数据库的数据交互。话不多说,我直接放在下面了
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; //导入命名空间 using System.Data; using System.Data.SqlClient; namespace oneWinForms { class DBHelper { //定义连接字符串 private static string connStr = "server=.;database=oneWinFormDB;uid=sa;pwd=123456"; /// <summary> /// 查询方法 DataSet /// </summary> /// <param name="sql">查询sql语句</param> /// <returns>返回DataSet数据表格</returns> public static DataSet GetDataSet(string sql) { //创建数据库连接对象 SqlConnection conn = new SqlConnection(connStr); //创建数据适配器对象 SqlDataAdapter sda = new SqlDataAdapter(sql, conn); //创建空数据表格对象 DataSet ds = new DataSet(); sda.Fill(ds); return ds; } /// <summary> /// 执行增删改查语句 /// </summary> /// <param name="sql">增删改sql语句</param> /// <returns>返回增删改执行结果</returns> public static bool ExecuteNonQuery(string sql) { SqlConnection conn = new SqlConnection(connStr); //打开数据库连接 conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn); return cmd.ExecuteNonQuery() > 0; } /// <summary> /// 执行集合函数操作 查询首行首列,返回object /// </summary> /// <param name="sql"></param> /// <param name="par"></param> /// <returns></returns> public static object ExecuteScalar(string sql) { SqlConnection conn = new SqlConnection(connStr);//创建数据库连接对象 conn.Open();//打开数据库连接 SqlCommand cmd = new SqlCommand(sql, conn); object result = cmd.ExecuteScalar(); conn.Close(); return result; } } }
记得导入一下命名空间
//导入命名空间 using System.Data; using System.Data.SqlClient;
database 后面写的是数据库的名字;
uid是SQL server2012 Management Studio的管理员名称,它默认是sa;
pwd后面是SQL server2012 Management Studio的密码,这里设置为123456;
1.4.建立数据库
use master create database oneWinFormDB on ( name='oneWinFormDB', filename='D:\MyDB\oneWinFormDB.MDF' ) go use oneWinFormDB go create table oneTb ( userId int identity(1,1) primary key, uTel varchar(20), uPwd varchar(20) ) go insert into oneTb(uTel,uPwd) values('12345678910','123456'); insert into oneTb(uTel,uPwd) values('12345678911','123456'); insert into oneTb(uTel,uPwd) values('12345678912','123456'); insert into oneTb(uTel,uPwd) values('12345678913','123456'); insert into oneTb(uTel,uPwd) values('12345678914','123456'); insert into oneTb(uTel,uPwd) values('12345678915','123456'); select*from oneTb--查询表
用sql语句建立数据库,看起来很简单吧。
1.5.主要功能代码
注册按钮
//注册按钮 private void resBtn_Click(object sender, EventArgs e) { //非空验证 if (tel.Text=="")//非空验证 { MessageBox.Show("手机号不为空!"); } if (pwd1.Text == "") { MessageBox.Show("密码不为空!"); } if (pwd2.Text == "") { MessageBox.Show("请确认密码!"); } if (pwd1.Text != pwd2.Text)//验证密码一致 { MessageBox.Show("两次输入密码不一致!"); } else { string sql = string.Format(@"insert into oneTb(uTel,uPwd) values('{0}','{1}');",tel.Text, pwd1.Text);//添加的sql语句 if (DBHelper.ExecuteNonQuery(sql))//调用ExecuteNonQuery方法进行增加操作 { MessageBox.Show("用户注册成功,请登录!");//注册成功后提醒 LoginForm lf = new LoginForm(); lf.Show();//注册完成后,自动跳转到登录界面 this.Hide();//隐藏该页面 } else { MessageBox.Show("注册失败,请重试!");//注册失败后提醒 } } }
手动跳转到登录界面
//登录按钮--手动跳转到登录界面 private void loginBtn_Click(object sender, EventArgs e) { LoginForm lf = new LoginForm(); lf.Show();//跳转到登录界面 }
登录按钮
//登录按钮 private void LoginBtn_Click(object sender, EventArgs e) { //非空验证 if (tel.Text == "")//非空验证 { MessageBox.Show("手机号不为空!"); } if (pwd.Text == "")//非空验证 { MessageBox.Show("密码不为空!"); } else { string sql = string.Format("select count(*) from oneTb where uTel='{0}'and uPwd='{1}'", tel.Text, pwd.Text); int i = Convert.ToInt32(DBHelper.ExecuteScalar(sql)); ;//调用查询单个值的方法 if (i>0) { MessageBox.Show("登录成功"); } else { MessageBox.Show("请检查手机号和密码后重试!","登录失败"); } } }
手动跳转到注册界面
//注册按钮--手动跳转到注册界面 private void resBtn_Click(object sender, EventArgs e) { registForm rf = new registForm(); rf.Show();//跳转到注册界面 }
注册界面完整源码
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 oneWinForms { public partial class LoginForm : Form { public LoginForm() { InitializeComponent(); } //注册按钮--手动跳转到跳转到注册界面 private void resBtn_Click(object sender, EventArgs e) { registForm rf = new registForm(); rf.Show();//跳转到注册界面 } //登录按钮 private void LoginBtn_Click(object sender, EventArgs e) { //非空验证 if (tel.Text == "")//非空验证 { MessageBox.Show("手机号不为空!"); } if (pwd.Text == "")//非空验证 { MessageBox.Show("密码不为空!"); } else { string sql = string.Format("select count(*) from oneTb where uTel='{0}'and uPwd='{1}'", tel.Text, pwd.Text); int i = Convert.ToInt32(DBHelper.ExecuteScalar(sql)); ;//调用查询单个值的方法 if (i>0) { MessageBox.Show("登录成功"); } else { MessageBox.Show("请检查手机号和密码后重试!","登录失败"); } } } } }
登录界面完整源码
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 oneWinForms { public partial class registForm : Form { public registForm() { InitializeComponent(); } //注册按钮 private void resBtn_Click(object sender, EventArgs e) { //非空验证 if (tel.Text=="")//非空验证 { MessageBox.Show("手机号不为空!"); } if (pwd1.Text == "") { MessageBox.Show("密码不为空!"); } if (pwd2.Text == "") { MessageBox.Show("请确认密码!"); } if (pwd1.Text != pwd2.Text)//验证密码一致 { MessageBox.Show("两次输入密码不一致!"); } else { string sql = string.Format(@"insert into oneTb(uTel,uPwd) values('{0}','{1}');", tel.Text, pwd1.Text);//添加的sql语句 if (DBHelper.ExecuteNonQuery(sql))//调用ExecuteNonQuery方法进行增加操作 { MessageBox.Show("用户注册成功,请登录!");//注册成功后提醒 LoginForm lf = new LoginForm(); lf.Show();//跳转到登录界面 this.Hide();//隐藏该页面 } else { MessageBox.Show("注册失败,请重试!");//注册失败后提醒 } } } //登录按钮--手动跳转到登录界面 private void loginBtn_Click(object sender, EventArgs e) { LoginForm lf = new LoginForm(); lf.Show();//跳转到登录界面 } } }
验证及注册/登录效果图
密码非空验证
手机号非空验证
验证密码一致
注册完成后页面
登录成功界面
这个代码可能有小bug,还请多多指教。
总结
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)