我是靠谱客的博主 干净万宝路,最近开发中收集的这篇文章主要介绍C#winForm连接SQL Server,创建登录窗口,用户注册窗口,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

C#winForm连接SQL Server,创建登录窗口,用户注册窗口

用到的工具:VS2015,SQL Server
数据表userinfo:(直接复制在SQL Server新建查询中即可)

GO

/****** Object:  Table [dbo].[userinfo]    Script Date: 2020/10/14 18:46:58 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[userinfo](
	[id] [nvarchar](40) NOT NULL,
	[name] [nvarchar](50) NOT NULL,
	[pwd] [nvarchar](50) NOT NULL,
	[role] [nvarchar](20) NOT NULL,
 CONSTRAINT [PK_userinfo] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

登录界面FrmLogin:image-20201014184752523,注册界面:image-20201014184821036

操作数据表的类Userinfo:

Userinfo.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
using DBConn;

namespace 注册.Class
{
    /// <summary>
    /// 该类包含两个个方法
    /// 用户登录,用户注册
    /// </summary>
    class Userinfo
    {
        /// <summary>
        /// 登录方法
        /// </summary>
        /// <param name="user_id">用户名</param>
        /// <param name="user_pwd">用户密码</param>
        /// <returns></returns>
        public string Login(string user_id,string user_pwd)
        {
            //创建连接
            SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();//快速构建连接SQL字符串
            scsb.DataSource = "127.0.0.1";//本机名,可以是127.0.0.1或.或本机计算机名
            scsb.UserID = "sa";//数据库登录名
            scsb.Password = "123";//数据库登录密码
            scsb.InitialCatalog = "Apexbio";//要连接的数据库名
            SqlConnection conn = new SqlConnection(scsb.ToString());//实例化连接SQL数据库的类的对象
            if (conn.State==ConnectionState.Closed)
            {
            conn.Open();
            }

            //拼接T-SQL语句
            string sqlStr = "SELECT * FROM userinfo WHERE id='" + user_id + "'AND pwd='" + user_pwd + "'";
            SqlCommand comm = new SqlCommand(sqlStr,conn);//实例化SQLCommand对象
            SqlDataReader dr = comm.ExecuteReader();//执行SQL语句,并接收返回受影响的行数
            if (dr.Read())  //如果行数大于0,则说明用户名和密码没问题
            {
                dr.Close();
                conn.Close();
                return null;
            }
            else
            {
                dr.Close();
                conn.Close();
                return "用户名或密码错误";
            }

        }

        /// <summary>
        /// 注册用户
        /// </summary>
        /// <param name="user_id">用户id</param>
        /// <param name="user_pwd">用户密码</param>
        /// <param name="user_name">用户名</param>
        /// <param name="user_group">用户权限</param>
        /// <returns></returns>
        public string Register(string user_id, string user_pwd, string user_name,string user_group)
        {
            //创建SQL连接
            SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();//快速构建连接SQL字符串
            scsb.DataSource = "127.0.0.1";//本机名,可以是127.0.0.1或.或本机计算机名
            scsb.UserID = "sa";//数据库登录名
            scsb.Password = "123";//数据库登录密码
            scsb.InitialCatalog = "Apexbio";//要连接的数据库名
            SqlConnection conn = new SqlConnection(scsb.ToString());//实例化连接SQL数据库的类的对象
            if (conn.State==ConnectionState.Closed)
            {
            conn.Open();
            }      
            //拼接T-SQL语句
            string strSQL = @"INSERT INTO [dbo].[userinfo]
                                       ([id]
                                       ,[name]
                                       ,[pwd]
                                       ,[role])
                                 VALUES
                                       ('"+user_id+@"'
                                       ,'"+user_name+@"'
                                       ,'"+user_pwd+@"'
                                       ,'"+user_group+"')";
            SqlCommand comm = new SqlCommand(strSQL, conn);//实例化SQLcommand对象
            try
            {
                comm.ExecuteNonQuery();//执行SQL语句
                return "注册成功";
            }
            catch(Exception ex)
            {
                return ex.Message;
            }
            finally
            {
                conn.Close();
            }
        }
    }
}

登录界面设计:

FrmLogin.cs

//登录按钮
private void btnLogin_Click(object sender, EventArgs e)
{
    Login();
}

//取消按钮
private void txtCancel_Click(object sender, EventArgs e)
{
    this.Close();
}

//按下回车时登录
private void FrmLogin_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyData == Keys.Return)//判断用户按下的是否为回车键
    {
        Login();
    }
}
 //login方法
private void Login()
{
    //不能为空
    if (txtUser.Text == "" || txtPwd.Text == "")
    {
        MessageBox.Show("用户名或密码不能为空", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
        return;
    }

    //变量定义
    string user_id = txtUser.Text.Trim();//trim去前后空格
    string user_pwd = txtPwd.Text;//空格也算做密码的一部分,所以不用去

    //密码加密
    user_pwd = Commons.EncodeHelper.AES_Encrypt(user_pwd);

    Userinfo us = new Userinfo();
    string message = us.Login(user_id,user_pwd);
    if (string.IsNullOrEmpty(message))
    {
        this.Close();
        FrmMain frm = new FrmMain();
        frm.Show();
    }
    else
    {
        MessageBox.Show(message, "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }



}
//注册按钮
private void lklRes_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    new FrmRegister().ShowDialog();
    /*show和showdialog的区别:
    *showdialog始终获得焦点,其他窗口不能获得焦点
     */
}

注册界面FrmRegister:

//注册
private void btnRes_Click(object sender, EventArgs e)
{
    //变量定义
    string user_id = txtUser.Text.Trim();
    string user_pwd = txtPwd.Text;
    string user_name = txtUserName.Text.Trim();
    string user_role = string.Empty;
    //密码加密
    user_pwd = Commons.EncodeHelper.AES_Encrypt(user_pwd);

    //实例化对象
    Userinfo us = new Userinfo();
    if (rbtnAdmin.Checked)
    {
        user_role = "admin";
    }
    else if (rbtnGroup.Checked)
    {
        user_role = "group";
    }
    else
    {
        user_role = "user";
    }

    string mess = us.Register(user_id,user_pwd,user_name,user_role);
    MessageBox.Show(mess, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

private void btnCaancel_Click(object sender, EventArgs e)
{
    this.Dispose();
    FrmLogin frm = new FrmLogin();
    frm.Show();
}

同时,这篇文章在用户密码部分作了加密处理,引用到Core.Common.dll,如果需要密码加密的话,可以选择跳转链接下载https://download.csdn.net/download/qq_42002500/12923364

最后

以上就是干净万宝路为你收集整理的C#winForm连接SQL Server,创建登录窗口,用户注册窗口的全部内容,希望文章能够帮你解决C#winForm连接SQL Server,创建登录窗口,用户注册窗口所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部