一分钟建立用户登录与注册系统

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_43679333/article/details/90261242

一:下载安装Mysql
链接:https://pan.baidu.com/s/14KxWgyUEHtzVpLlAiDa6ag
提取码:ydkf
复制这段内容后打开百度网盘手机App,操作更方便哦

安装过程自行百度

图形化MySql操作工具Navicat Premium 12
链接:https://pan.baidu.com/s/1CKh0szB0w6EAQ6lkT8KUbg
提取码:70cb
复制这段内容后打开百度网盘手机App,操作更方便哦

破解Navicat Premium 12 补丁
链接:https://pan.baidu.com/s/1XynAl2TAb6JPiIe6Ef8jyw
提取码:ngar
复制这段内容后打开百度网盘手机App,操作更方便哦
选择正确的文件夹版本复制到Navicat Premium 12安装的根目录即可破解

准备就绪后建立数据库
在这里插入图片描述
在数据库中建立表格
在这里插入图片描述
安成后保存 完成数据库的建立

二:连接数据库
提前需要进行如下操作:
右击项目选择管理NuGet程序包…
然后搜索Mysql在这里插入图片描述
安装上图程序包

打开VS
在这里插入图片描述
添加类MysqlAssess,其中包括登录、注册以及生成ID(按时间生成)的相关函数

using System.Collections;
using System.Collections.Generic;
using MySql.Data.MySqlClient;
using System.Data;
using System;

namespace AR_Server
{
    public class MySqlAccess
    {
        public static String hpname;
        //连接类对象
        private static MySqlConnection mySqlConnection;
        //IP地址
        private static string host;
        //端口号
        private static string port;
        //用户名
        private static string userName;
        //密码
        private static string password;
        //数据库名称
        private static string databaseName;

        //string sqlCon = "server=localhost;user id=root;password=WANGshuai123...;data=userTable";

        /// <summary>
        /// 构造方法
        /// </summary>
        /// <param name="_host">ip地址</param>
        /// <param name="_userName">用户名</param>
        /// <param name="_password">密码</param>
        /// <param name="_databaseName">数据库名称</param>
        public MySqlAccess(string _host, string _port, string _userName, string _password, string _databaseName)
        {
            host = _host;
            port = _port;
            userName = _userName;
            password = _password;
            databaseName = _databaseName;
        }

        /// <summary>
        /// 打开数据库
        /// </summary>
        public bool OpenSql(string S_name, string S_password)
        {
            bool a = false;
            try
            {

                string mySqlString = string.Format("Database={0};Data Source={1};User Id={2};Password={3};port={4}", databaseName, host, userName, password, port);
                MySqlConnection conn = new MySqlConnection(mySqlString);
                //if(mySqlConnection.State == ConnectionState.Closed)
                conn.Open();
                MySqlCommand cma = new MySqlCommand();
                cma.Connection = conn;
                cma.CommandText = "select * from user where '" + S_name + "'";


                MySqlDataReader reader = cma.ExecuteReader();
                if (reader.HasRows)
                {
                    reader.Read();
                    String res = reader.GetString(0);
                }
                if (S_name == reader.GetString(0) && S_password == reader.GetString(2))
                {
                    a = true;
                }
                hpname = reader.GetString(3);
                return a;

            }
            catch (Exception e)
            {
                throw new Exception("服务器连接失败,请重新检查MySql服务是否打开。" + e.Message.ToString());
            }
            return a;

        }


        public bool OpenSql1(string S_name, string S_password, string S_user_name)//注册账户函数
        {
            bool a = false;
            try
            {

                string mySqlString = string.Format("Database={0};Data Source={1};User Id={2};Password={3};port={4}", databaseName, host, userName, password, port);
                MySqlConnection conn = new MySqlConnection(mySqlString);
                //if(mySqlConnection.State == ConnectionState.Closed)
                conn.Open();
                MySqlCommand cma = new MySqlCommand();
                cma.Connection = conn;
                cma.CommandText = "select count(id) from user where tet = '" + S_name + "'";



                MySqlDataReader reader = cma.ExecuteReader();
                if (reader.HasRows)
                {
                    reader.Read();
                    String res = reader.GetString(0);
                }
                Console.WriteLine(reader.GetInt32(0));


                if (reader.GetInt32(0) == 0)//判断账号是否创建
                {
                    a = insertData(S_name, S_password, S_user_name);
                    return a;
                }
                else
                {
                    a = false;
                    Console.WriteLine("该账号已注册!!!");
                    return false;
                }

            }
            catch (Exception e)
            {
                throw new Exception("服务器连接失败,请重新检查MySql服务是否打开。" + e.Message.ToString());
            }
            return a;

        }

        bool insertData(string s_name, string s_password, string S_user_name)//插入数据
        {
            bool a = true;
            string mySqlString = string.Format("Database={0};Data Source={1};User Id={2};Password={3};port={4}", databaseName, host, userName, password, port);
            MySqlConnection conn = new MySqlConnection(mySqlString);
            //if(mySqlConnection.State == ConnectionState.Closed)
            conn.Open();
            MySqlCommand cma = new MySqlCommand();
            cma.Connection = conn;
            string id = get_id();
            Console.WriteLine(S_user_name);
            cma.CommandText = "insert into user values('" + id + "','" + s_name + "','" + s_password + "','" + S_user_name + "')";
            cma.ExecuteNonQuery();
            return a;
        }

        string get_id()//生成id
        {
            string a = System.DateTime.Now.ToString();
            a = a.Replace("/", "");
            a = a.Replace(" ", "");
            a = a.Replace(":", "");
            Console.WriteLine(a);

            return a;
        }

        /// <summary>
        /// 关闭数据库
        /// </summary>
        public void CloseSql()//关闭服务器
        {
            if (mySqlConnection != null)
            {
                mySqlConnection.Close();
                mySqlConnection.Dispose();
                mySqlConnection = null;
            }
        }

        /// <summary>
        /// 查询数据
        /// </summary>
        /// <param name="tableName">表名</param>
        /// <param name="items">要查询的列</param>
        /// <param name="whereColumnName">查询的条件列</param>
        /// <param name="operation">条件操作符</param>
        /// <param name="value">条件的值</param>
        /// <returns></returns>
        public DataSet Select(string tableName, string[] items, string[] whereColumnName,
            string[] operation, string[] value)
        {

            if (whereColumnName.Length != operation.Length || operation.Length != value.Length)
            {
                throw new Exception("输入不正确:" + "要查询的条件、条件操作符、条件值 的数量不一致!");
            }
            string query = "Select " + items[0];
            for (int i = 1; i < items.Length; i++)
            {
                query += "," + items[i];
            }

            query += " FROM " + tableName + " WHERE " + whereColumnName[0] + " " + operation[0] + " '" + value[0] + "'";
            for (int i = 1; i < whereColumnName.Length; i++)
            {
                query += " and " + whereColumnName[i] + " " + operation[i] + " '" + value[i] + "'";
            }
            return QuerySet(query);

        }

        /// <summary>
        /// 执行SQL语句
        /// </summary>
        /// <param name="sqlString">sql语句</param>
        /// <returns></returns>
        private DataSet QuerySet(string sqlString)
        {
            if (mySqlConnection.State == ConnectionState.Open)
            {
                DataSet ds = new DataSet();
                try
                {
                    MySqlDataAdapter mySqlAdapter = new MySqlDataAdapter(sqlString, mySqlConnection);
                    mySqlAdapter.Fill(ds);
                }
                catch (Exception e)
                {
                    throw new Exception("SQL:" + sqlString + "/n" + e.Message.ToString());
                }
                finally
                {
                }
                return ds;
            }
            return null;
        }

        public bool S_user_name(string S_user_name)//判断昵称是否合法
        {
            bool a = false;
            try
            {

                string mySqlString = string.Format("Database={0};Data Source={1};User Id={2};Password={3};port={4}", databaseName, host, userName, password, port);
                MySqlConnection conn = new MySqlConnection(mySqlString);
                //if(mySqlConnection.State == ConnectionState.Closed)
                conn.Open();
                MySqlCommand cma = new MySqlCommand();
                cma.Connection = conn;
                cma.CommandText = "select count(id) from user where user_name = '" + S_user_name + "'";



                MySqlDataReader reader = cma.ExecuteReader();
                if (reader.HasRows)
                {
                    reader.Read();
                    String res = reader.GetString(0);
                }


                if (reader.GetInt32(0) == 0)//判断昵称是否合法
                {
                    a = true;
                }
                else
                {
                    a = false;
                }
            }
            catch (Exception e)
            {
                throw new Exception("服务器连接失败,请重新检查MySql服务是否打开。" + e.Message.ToString());
            }
            return a;
        }
    }
}

添加类ReginsterClass,注册类

using System;
using System.Collections;
using System.Collections.Generic;

namespace AR_Server
{
    public class ReginsterClass
    {
        MySqlAccess mysql = new MySqlAccess("127.0.0.1", "3306", "root", "123456", "userapp");
        string S_name = null;
        string S_passworld = null;
        string S_repassword = null;
        string S_user_name = null;
        bool a = false;

        public ReginsterClass(string a, string b, string c,string d)
        {
            S_name = a;
            S_passworld = b;
            S_repassword = c;
            S_user_name = d;
        }

        public void Finish_Register()//向服务器提交注册信息
        {
                bool a = mysql.OpenSql1(S_name, S_passworld, S_user_name);
                mysql.CloseSql();
                if (a == true)
                {
                    Console.WriteLine("注册成功!请登录...");
                }
                else
                {
                    Console.WriteLine("注册失败,请重试......");
                }
        }
    }
}

添加登录类

using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
namespace AR_Server
{

    public class LogionClass
    {
        MySqlAccess mysql = new MySqlAccess("127.0.0.1", "3306", "root", "123456", "userapp");

        private string S_name;
        private string S_password;

        // Start is called before the first frame update
        public LogionClass(string a, string b)
        {
            S_name = a;
            S_password = b;
        }
        public void To_Login()//登录
        {
            bool a = mysql.OpenSql(S_name, S_password);

            mysql.CloseSql();
            /*Debug.Log(user_name + password);*/
            if (a == true)
            {
                Console.WriteLine("登陆成功!);
            }
            else
            {
                Console.WriteLine("账号或密码输入错误!请重新输入");
            }
        }
    }
}

三:测试
新建主类MainClass

注册测试

using System;
using System.Collections.Generic;
using System.Text;

namespace AR_Server
{
    class MainClass
    {
        public static void Main(string[] arg)
        {
            ReginsterClass a = new ReginsterClass("223332", "223332", "223332", "cccd");
            a.Finish_Register();
        }

    }
}

在这里插入图片描述

登录测试:
在这里插入图片描述

using System;
using System.Collections.Generic;
using System.Text;

namespace AR_Server
{
    class MainClass
    {
        public static void Main(string[] arg)
        {
            LogionClass a = new LogionClass("17547625284", "wmy.521");
            a.To_Login();
        }

    }
}

在这里插入图片描述

连接本地数据库ip为127.0.0.1或loccalhost 端口号为3306
至此用户登录及注册程序模板写好…

猜你喜欢

转载自blog.csdn.net/qq_43679333/article/details/90261242
今日推荐