一分钟建立用户登录与注册系统
一:下载安装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
至此用户登录及注册程序模板写好…