目录
  • 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基本窗体界面

    C#中winform窗体实现注册/登录功能实例(DBHelper类)

    registeForm注册界面

    C#中winform窗体实现注册/登录功能实例(DBHelper类)

    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();//跳转到登录界面
            }
        }
    }

    验证及注册/登录效果图

    C#中winform窗体实现注册/登录功能实例(DBHelper类)

    密码非空验证

    C#中winform窗体实现注册/登录功能实例(DBHelper类)

    手机号非空验证

    C#中winform窗体实现注册/登录功能实例(DBHelper类)

    验证密码一致

    C#中winform窗体实现注册/登录功能实例(DBHelper类)

    注册完成后页面

    C#中winform窗体实现注册/登录功能实例(DBHelper类)

    登录成功界面

    这个代码可能有小bug,还请多多指教。

    总结

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。