Unity使用Mysql添/删/改/查/保姆级
UnityDemo版本
Unity版本:2020.3.25;
Visual Studio版本: 2019;MySql.Data.dll版本:5.2.3
MySql版本:5.7.35
数据库下载地址教程



下载完成后解压到任意盘即可(楼主我选择的是D盘)
点击查看
勾选文件扩展名
右键新建文本文档 修改名称My.ini
修改后
打开my.ini 把以下文本复制到里面去 设置basedir(你的安装目录)
和datadir(数据库存放路径 注意:定义路径一定要有data文件夹)
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录 ----------是你的文件路径-------------
basedir=D:\mysql-5.7.35-winx64
# 设置mysql数据库的数据的存放目录 ---------是你的文件路径data文件夹自行创建
datadir=D:\MysqlData\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
按下Win+R 输入cmd 然后回车
右键点击命令提示符 左键点击以管理员运行
先输入D: 回车
然后输入 cd 解压出来bin文件路径
然后在控制台输入指令
mysqld --install

如上图代表成功
接下来在控制台输入命令
mysqld --initialize --console

输入后稍等一会,才会显示随机出来密码
记下你随机出来密码 楼主随机出来密码是 VPWuVnRro3:)
输入以下指令启动Mysql服务器
net start mysql

如上图表示成功
登录Mysql服务器输入
mysql -u root -p

上图输入你的随机密码
楼主随机出来密码是 VPWuVnRro3:)
如上图显示就成功了
登录成功可以修改密码为123456
输入指令
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

如上图成功
安装完成在控制台 输入quit和exit 退出
quit
exit

接下来进行环境搭配
此电脑右键->属性->高级系统设置

新建系统变量

变量名为:MYSQL_HOME
变量值为你的MySQL安装路径
点击确定
找到path进行编辑
新建环境变量
变量为:%MYSQL_HOME%\bin
%MYSQL_HOME%\bin

在桌面找到此电脑右键此电脑->管理->服务与应用程序->服务

找到mysql->右键属性
将启动类型改为手动(防止开机速度变慢)
以上操作已经完成Mysql环境搭建
每次开机以管理员身份打开控制台输入命令
net start mysql

可视化窗口下载教程
使用可视化窗口
点击连接

在点击mysql 最后弹出以下窗口
点击高级 自定义设置位置
然后点击确定
连接成功如下图
打开数据库出现以下界面



最后点击保存 弹出以下图

dll下载地址
本次Demo下载地址
下载好后直接把资源包直接放进Assets文件中 运行如下环境配置成功
如果下载地址丢失请看下面
1:导入Unity安装目录下的必要程序集、I18N.CJK、I18N、I18N.West;
(因为2020版的Unity默认加载了System.Data.dll,System.Drawing.dll,所以不用再次导入)
安装目录路劲为:Editor\Data\MonoBleedingEdge\lib\mono\unityjit
(注意一定是这个目录下的几个程序集,其他的尝试后无效并且报错)
在Unity Assets 新建Plugins文件 把这三个文件夹 放到里面去 最后在把Mysql.data.dll 也放进去图下
本项目脚本 SqlHelper Mysql访问类
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using MySql.Data.MySqlClient;
using UnityEngine;
/*
也可以使用using块来套用 Mysql操作类 mysql会自动关闭数据库
using(var sql = new SqlHelper(填写对应参数))
{
//手动打开数据库
sql.Open();
}
*/
namespace Imdork.Mysql
{
/// <summary>
/// Mysql添/删/改/查 操作类 切记使用该类方法 除了(Connect方法)其他方法 先调用Open() 使用完后 在Close()掉
/// </summary>
public class SqlHelper : IDisposable
{
string _server, _port, _user, _password, _datename, _format;
string connectStr;
MySqlConnection conn;
/// <summary>
/// 连接数据库构造方法
/// </summary>
/// <param name="host">IP地址</param>
/// <param name="port">端口</param>
/// <param name="user">用户名</param>
/// <param name="passwd">密码</param>
/// <param name="database">数据库名称</param>
/// <param name="format">请填写字体</param>
public SqlHelper(string host, string port, string user, string passwd, string database, string format)
{
Connect(host, port, user, passwd, database, format);
}
/// <summary>
/// 连接数据库构造方法
/// </summary>
/// <param name="host"></param>
/// <param name="port"></param>
/// <param name="user"></param>
/// <param name="passwd"></param>
/// <param name="database"></param>
public SqlHelper(string host, string port, string user, string passwd, string database)
{
Connect(host, port, user, passwd, database);
}
/// <summary>
/// 连接数据库
/// </summary>
/// <param name="host">IP地址</param>
/// <param name="port">端口</param>
/// <param name="user">用户名</param>
/// <param name="passwd">密码</param>
/// <param name="database">数据库名称</param>
/// <param name="format">字体默认utf8</param>
public void Connect(string host, string port, string user, string passwd, string database, string format = "utf8")
{
_server = host;
_port = port; _user = user;
_password = passwd;
_datename = database;
_format = format;
connectStr = string.Format("server={0};port={1};user={2};password={3}; database={4};charset={5}", _server, _port, _user, _password, _datename, _format);//设置连接ip,端口,用户名,密码,以及编码格式
conn = new MySqlConnection(connectStr);//创建连接类
}
/// <summary>
/// 打开数据库连接
/// </summary>
public void Open()
{
conn.Open();//正式打开连接
}
/// <summary>
/// 关闭数据库连接
/// </summary>
public void Close()
{
conn.Close();//关闭连接
}
/// <summary>
/// using块回收资源时执行
/// </summary>
public void Dispose()
{
Close();
}
#region 查询语句
/// <summary>
/// 查询指定字段
/// </summary>
/// <param name="tableName"></param>
/// <param name="items"></param>
/// <returns></returns>
public DataSet Select(string tableName, string[] items)
{
string query = "SELECT " + items[0];
for (int i = 1; i < items.Length; ++i)
{
query += ", " + items[i];
}
query += " FROM " + tableName;
Debug.LogFormat("query: {0}", query);
return ExecuteQuery(query);
}
/// <summary>
/// 查询所有字段
/// </summary>
/// <param name="tableName">表名</param>
/// <returns></returns>
public DataSet Select(string tableName)
{
string query = "SELECT * FROM " + tableName;
return ExecuteQuery(query);
}
#region 根据条件查询指定字段
/// <summary>
/// 查询指定字段数据中满足条件的
/// DataSet内存中的数据库,DataSet是不依赖于数据库的独立数据集合,是一种不包含表头的纯数据文件
/// 有条件的查询,查询在users这个表当中,只需要字段名为userAccount,userPwd,userName,ID这几个字段对应的数据,
/// 满足条件为 userAccount对应的value=account, userPwd对应的value=md5Password;
/// ("users", new string[] { "userAccount", "userPwd", "userName", "ID" }, new string[] { "userAccount", "userPwd" }, new string[] { "=", "=" }, new string[] { account, md5Password });
/// </summary>
/// <param name="tableName">表名</param>
/// <param name="items">查询字段名</param>
/// <param name="cols">判断字段名</param>
/// <param name="operations">条件运算符</param>
/// <param name="values">满足的条件值</param>
/// <returns></returns>
public DataSet SelectWhere(string tableName, string[] items, string[] cols, string[] operations, string[] values)
{
if (cols.Length != operations.Length || operations.Length != values.Length)
{
throw new Exception("col.Length != operation.Length != values.Length");
}
string query = "SELECT " + items[0];
for (int i = 1; i < items.Length; ++i)
{
query += ", " + items[i];
}
query += " FROM " + tableName + " WHERE " + cols[0] + operations[0] + "'" + values[0] + "' ";
for (int i = 1; i < cols.Length; ++i)
{
query += " AND " + cols[i] + operations[i] + "'" + values[i] + "' ";
}
Debug.LogFormat("query: {0}", query);
return ExecuteQuery(query);
}
#endregion
#region 根据条件查询全部字段
/// <summary>
/// 根据条件查询全部字段
/// </summary>
/// <param name="tableName">表名</param>
/// <param name="cols">判断字段</param>
/// <param name="operations">判断字符</param>
/// <param name="values">条件成立数据</param>
/// <returns></returns>
public DataSet SelectWhere(string tableName, string[] cols, string[] operations, string[] values)
{
if (cols.Length != operations.Length || operations.Length != values.Length)
{
throw new Exception("col.Length != operation.Length != values.Length");
}
string query = "SELECT *";
query += " FROM " + tableName + " WHERE " + cols[0] + operations[0] + "'" + values[0] + "' ";
for (int i = 1; i < cols.Length; ++i)
{
query += " AND " + cols[i] + operations[i] + "'" + values[i] + "' ";
}
Debug.LogFormat("query: {0}", query);
return ExecuteQuery(query);
}
#endregion
/// <summary>
/// 执行查询语句,返回DataSet
/// </summary>
/// <param name="SQLString">查询语句</param>
/// <returns>DataSet</returns>
public DataSet ExecuteQuery(string SQLString)
{
DataSet ds = new DataSet();
try
{
MySqlDataAdapter da = new MySqlDataAdapter(SQLString, conn);
da.Fill(ds);
}
catch (MySqlException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
#endregion
#region 更新语句
/// <summary>
/// 更新数据 param tableName=表名 selectkey=查找字段(主键) selectvalue=查找内容 cols=更新字段 colsvalues=更新内容
/// </summary>
/// <param name="tableName">表名</param>
/// <param name="selectKeys">查找字段</param>
/// <param name="selectValues">查找内容</param>
/// <param name="cols">更新字段</param>
/// <param name="colsValues">更新数据</param>
/// <returns></returns>
public int UpdateIntoSpecific(string tableName, string[] selectKeys, string[] selectValues, string[] cols, string[] colsValues)
{
string query = "UPDATE " + tableName + " SET " + cols[0] + " = " + "'" + colsValues[0] + "'";
for (int i = 1; i < colsValues.Length; ++i)
{
query += ", " + cols[i] + " =" + "'" + colsValues[i] + "'";
}
query += " WHERE " + selectKeys[0] + " = " + "'" + selectValues[0] + "' ";
for (int i = 1; i < selectKeys.Length; ++i)
{
query += " AND " + selectKeys[i] + " = " + "'" + selectValues[i] + "' ";
}
return ExecuteNonQuery(query);
}
/// <summary>
/// 更新数据 param tableName=表名 selectkey=查找字段(主键) operation=判断的符号 selectvalue=查找内容 cols=更新字段 colsvalues=更新内容
/// </summary>
/// <param name="tableName">表名</param>
/// <param name="selectKeys">查找字段</param>
/// <param name="operation">判断符号</param>
/// <param name="selectValues">查找内容</param>
/// <param name="cols">更新字段</param>
/// <param name="colsValues">更新数据</param>
/// <returns></returns>
public int UpdateIntoSpecific(string tableName, string[] selectKeys, string[] operation, string[] selectValues, string[] cols, string[] colsValues)
{
string query = "UPDATE " + tableName + " SET " + cols[0] + " = " + "'" + colsValues[0] + "'";
for (int i = 1; i < colsValues.Length; ++i)
{
query += ", " + cols[i] + " =" + "'" + colsValues[i] + "'";
}
query += " WHERE " + selectKeys[0] + " " + operation[0] + " " + "'" + selectValues[0] + "' ";
for (int i = 1; i < selectKeys.Length; ++i)
{
query += " AND " + selectKeys[i] + " " + operation[i] + " " + "'" + selectValues[i] + "' ";
}
return ExecuteNonQuery(query);
}
#endregion
#region 插入语句
/// <summary>
/// 插入部分ID
/// </summary>
/// <param name="tableName">表名</param>
/// <param name="cols">字段名</param>
/// <param name="values">具体数值</param>
/// <returns></returns>
public int InsertInto(string tableName, string[] cols, string[] values)
{
if (cols.Length != values.Length)
{
throw new Exception("columns.Length != colType.Length");
}
string query = "INSERT INTO " + tableName + " (" + cols[0];
for (int i = 1; i < cols.Length; ++i)
{
query += ", " + cols[i];
}
query += ") VALUES (" + "'" + values[0] + "'";
for (int i = 1; i < values.Length; ++i)
{
query += ", " + "'" + values[i] + "'";
}
query += ")";
Debug.LogFormat("query: {0}", query);
return ExecuteNonQuery(query);
}
#endregion
#region 删除语句
#region 根据条件删除表
/// <summary>
/// 删除
/// </summary>
/// <param name="tableName">表名</param>
/// <param name="cols">字段</param>
/// <param name="colsValues">字段值</param>
/// <returns></returns>
public int Delete(string tableName, string[] cols, string[] colsValues)
{
string query = "DELETE FROM " + tableName + " WHERE " + cols[0] + " = " + "'" + colsValues[0] + "'";
for (int i = 1; i < colsValues.Length; ++i)
{
query += " and " + cols[i] + " = " + "'" + colsValues[i] + "'";
}
return ExecuteNonQuery(query);
}
/// <summary>
/// 删除表
/// </summary>
/// <param name="tableName"></param>
/// <param name="cols"></param>
/// <param name="operation"></param>
/// <param name="colsValues"></param>
/// <returns></returns>
public int Delete(string tableName, string[] cols, string[] operation, string[] colsValues)
{
string query = "DELETE FROM " + tableName + " WHERE " + cols[0] + " " + operation[0] + " " + "'" + colsValues[0] + "'";
for (int i = 1; i < colsValues.Length; ++i)
{
query += " and " + cols[i] + " " + operation[i] + " " + "'" + colsValues[i] + "'";
}
return ExecuteNonQuery(query);
}
#endregion
/// <summary>
/// 删除表中全部数据
/// </summary>
public int DeleteContents(string tableName)
{
string query = "DELETE FROM " + tableName;
return ExecuteNonQuery(query);
}
#endregion
#region 创建表
/// <summary>
/// 创建表 param name=表名 col=字段名 colType=字段类型
/// </summary>
public int CreateTable(string name, string[] col, string[] colType)
{
if (col.Length != colType.Length)
{
throw new Exception("columns.Length != colType.Length");
}
string query = "CREATE TABLE " + name + " (" + col[0] + " " + colType[0];
for (int i = 1; i < col.Length; ++i)
{
query += ", " + col[i] + " " + colType[i];
}
query += ")";
return ExecuteNonQuery(query);
}
#endregion
/// <summary>
/// 执行SQL语句,返回影响的记录数。用于Update、Insert和Delete
/// </summary>
/// <param name="SQLString">SQL语句</param>
/// <returns>影响的记录数</returns>
public int ExecuteNonQuery(string SQLString)
{
using (MySqlCommand cmd = new MySqlCommand(SQLString, conn))
{
try
{
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch (MySqlException E)
{
throw new Exception(E.Message);
}
finally
{
cmd.Dispose();
}
}
}
}
}
本项目脚本 mysqlTools工具类
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Data;
/*
DataSet类使用方法
asp.NET中DataSet对象获取相应列值、行列数、列名、取出特定值这些操作的总结,具体代码如下:
1. DataSet.Table[0].Rows[ i ][ j ]
其中i 代表第 i 行数, j 代表第 j 列数
2. DataSet.Table[0].Rows[ i ].ItemArray[ j ]
其中i 代表第 i 行数, j 代表第 j 列数
3. DataSet.Tables[0].Columns.Count
取得表的总列数
4. DataSet.Tables[0].Rows.Count
取得表的总行数
5. DataSet.Tables[0].Columns[ i ].ToString()
取得表的 i 列名(字段名)
6. ds.Tables.Count - 返回表的数量,一个 select 返回一个 table
*/
namespace Imdork.Mysql
{
/// <summary>
/// mysql工具类
/// </summary>
public class MysqlTools
{
/// <summary>
/// 获取表中数据 字典中第一个键是字段名 第二个是 对应字段值 返回字典数组
/// </summary>
/// <param name="ds">数据表类</param>
/// <returns></returns>
public static Dictionary<string, object>[] TableData(DataSet ds)
{
//判断是否没有数据
if (ds.Tables.Count == 0)
{
//返回空
return null;
}
//声明集合
List<Dictionary<string, object>> tableList = new List<Dictionary<string, object>>();
//遍历DataSet表条数
for (int i = 0; i < ds.Tables.Count; i++)
{
//遍历表该条字段数量
for (int j = 0; j < ds.Tables[i].Rows.Count; j++)
{
//根据该条数 并新建一块字典空间存储到该字典中
tableList.Add(new Dictionary<string, object>());
//存储该条数类对象
var temp = ds.Tables[i];
//获取该条所有字段值
var obj = temp.Rows[j].ItemArray;
//遍历所有字段数组
for (int k = 0; k < obj.Length; k++)
{
//获取该字段名称
string tableName = temp.Columns[k].ToString();
//根据字段名称 和对应字段值存储到字段中
tableList[j].Add(tableName, obj[k]);
}
}
}
//返回字典数组
return tableList.ToArray();
}
/// <summary>
/// 获取单个数据
/// </summary>
/// <param name="ds">数据表类</param>
/// <param name="Name">字段名称</param>
/// <returns></returns>
public static object GetValue(DataSet ds, string Name)
{
//判断是否没有数据
if (ds.Tables.Count == 0)
{
//返回空
return null;
}
//遍历DataSet表条数
for (int i = 0; i < ds.Tables.Count; i++)
{
//遍历表该条字段数量
for (int j = 0; j < ds.Tables[i].Rows.Count; j++)
{
//存储该条数类对象
var temp = ds.Tables[i];
//获取该条所有字段值
var obj = temp.Rows[j].ItemArray;
//遍历所有字段数组
for (int k = 0; k < obj.Length; k++)
{
//获取该字段名称
string tableName = temp.Columns[k].ToString();
//判断该字段名称是否等于Name
if (tableName == Name)
{
//返回数据
return obj[k];
}
}
}
}
//返回null
return null;
}
/// <summary>
/// 获取多个数据
/// </summary>
/// <returns></returns>
public static object[] GetValues(DataSet ds, string Name)
{
//判断是否没有数据
if (ds.Tables.Count == 0)
{
//返回空
return null;
}
//声明字段集合
List<object> list = new List<object>();
//遍历DataSet表条数
for (int i = 0; i < ds.Tables.Count; i++)
{
//遍历表该条字段数量
for (int j = 0; j < ds.Tables[i].Rows.Count; j++)
{
//存储该条数类对象
var temp = ds.Tables[i];
//获取该条所有字段值
var obj = temp.Rows[j].ItemArray;
//遍历所有字段数组
for (int k = 0; k < obj.Length; k++)
{
//获取该字段名称
string tableName = temp.Columns[k].ToString();
//判断该字段名称是否等于Name
if (tableName == Name)
{
//存储到集合中
list.Add(obj[k]);
}
}
}
}
//返回数组
return list.ToArray();
}
}
}
本项目脚本Test 测试脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Imdork.Mysql;
public class Test : MonoBehaviour
{
void Start()
{
//创建数据库类 IP地址 端口 用户名 密码 数据库项目名称
var mySqlTools = new SqlHelper("127.0.0.1", "3306", "root", "123456", "user");
//打开数据库
mySqlTools.Open();
//创建表方法 表名 字段名称 字段类型
//mySqlTools.CreateTable("userdata", new[] { "UID", "User","Password" }, new[] { "tinytext", "tinytext", "tinytext" });
//查询方法
FindMysql(mySqlTools, "userdata", new[] { "UID", "User", "Password" });
// 插入方法 表名 字段名 插入数据
//mySqlTools.InsertInto("userdata", new[] { "UID", "User", "Password" },new[] {"52022","ddxj1","123456" });
// 更新方法 表名 更新字段名 判断符号 更新数据 查询条件字段 条件成立字段
//mySqlTools.UpdateIntoSpecific("userdata", new[] { "User" }, new[] { "=" }, new[] { "ddxj1" }, new[] { "Password" }, new[] { "456789" });
// 删除方法 表名 删除字段 判断条件 条件成立数据
//mySqlTools.Delete("userdata", new[] { "User" }, new[] { "=" }, new[] { "ddxj1" });
// 从SqlHelper查询出来数据库 都会返回Dataset DataSet类 字段名
// 返回对象object 获取数据方法
// var GetValues = MysqlTools.GetValue(mySqlTools.Select("userdata"), "User");
//print(GetValues);
//查询方法 表名 查询字段名 判断字段名 判断符号 条件成立数据
// var ds = mySqlTools.SelectWhere("userdata", new[] { "UID" }, new[] { "User" }, new[] { "=" }, new[] { "ddxj1" });
//查询方法 表名 判断字段名 判断符号 条件成立数据
// var ds = mySqlTools.SelectWhere("userdata", new[] { "User" }, new[] { "=" }, new[] { "ddxj1" });
//SelectWhere方法会返回Dataset类对象, 声明ds变量接收如上图
//MysqlTools 工具类使用GetValue方法负责接收DataSet对象 给字段名称返回对应数据
//调用MysqlTools 工具类 Dataset类对象 查询字段
//object values = MysqlTools.GetValue(ds, "UID");
//print(values); //最后打印15924
// mySqlTools.DeleteContents("userdata"); 删除表中全部数据
//关闭数据库
mySqlTools.Close();
}
/// <summary>
/// 查询表中数据 记得先调用Open()方法 用完此方法后直接Close()
/// </summary>
/// <param name="mySqlTools">Mysql框架类</param>
/// <param name="tableName">表名</param>
/// <param name="items">字段名称</param>
void FindMysql(SqlHelper mySqlTools,string tableName,string[] items)
{
var ds = mySqlTools.Select(tableName, items);
var pairs = MysqlTools.TableData(ds);
DebugMysql(pairs);
}
/// <summary>
/// 打印查询数据库
/// </summary>
/// <param name="pairs"></param>
private void DebugMysql(Dictionary<string,object>[] pairs)
{
for (int i = 0; i < pairs.Length; i++)
{
foreach (var table in pairs[i])
{
string tableList = string.Format("第{0}行,表字段名对应数据是 {1}", i + 1, table);
print(tableList);
}
}
}
}
使用数据库添/删/改/查

切记使用SqlHelper所有方法除了Connent方法外 其他方法一定要先Open(),使用完后在Close() 掉
创建表的方法
也可以使用CreateTable方法 创建表 字段名 对应类型全部是string
//创建数据库类 IP地址 端口 用户名 密码 数据库项目名称
var mySqlTools = new SqlHelper("127.0.0.1", "3306", "root", "123456", "user");
//打开数据库
mySqlTools.Open();
//创建表方法 表名 字段名称 字段类型
mySqlTools.CreateTable("userdata", new[] { "UID", "User","Password" }, new[] { "tinytext", "tinytext", "tinytext" });
//关闭数据库
mySqlTools.Close();
插入数据库方法
//创建数据库类 IP地址 端口 用户名 密码 数据库项目名称
var mySqlTools = new SqlHelper("127.0.0.1", "3306", "root", "123456", "user");
//打开数据库
mySqlTools.Open();
//插入方法 表名 字段名 插入数据
mySqlTools.InsertInto("userdata", new[] { "UID", "User", "Password" },new[] {"水神","ddxj1","123456" });
//关闭数据库
mySqlTools.Close();
运行后如下图
更改数据方法
需求:更改User 为ddxj1 密码为456789
//创建数据库类 IP地址 端口 用户名 密码 数据库项目名称
var mySqlTools = new SqlHelper("127.0.0.1", "3306", "root", "123456", "user");
//打开数据库
mySqlTools.Open();
// 更新方法 表名 更新字段名 判断符号 更新数据 查询条件字段 条件成立字段
mySqlTools.UpdateIntoSpecific("userdata", new[] { "User" }, new[] { "=" }, new[] { "ddxj1" }, new[] { "Password" }, new[] { "456789" });
//关闭数据库
mySqlTools.Close();
运行结果于下图
删除数据方法
需求删除表中 User为ddxj1数据
//创建数据库类 IP地址 端口 用户名 密码 数据库项目名称
var mySqlTools = new SqlHelper("127.0.0.1", "3306", "root", "123456", "user");
//打开数据库
mySqlTools.Open();
// 删除方法 表名 删除字段 判断条件 条件成立数据
mySqlTools.Delete("userdata", new[] { "User" }, new[] { "=" }, new[] { "ddxj1" });
//关闭数据库
mySqlTools.Close();
代码运行结果如下
数据库查询方法
需求:查询表中User 为imdork 对应UID 对应数据
SelectWhere方法会返回Dataset类对象
MysqlTools 类的GetValue方法负责接收DataSet对象 传递字段名称返回对应数据
代码如下:
//创建数据库类 IP地址 端口 用户名 密码 数据库项目名称
var mySqlTools = new SqlHelper("127.0.0.1", "3306", "root", "123456", "user");
//打开数据库
mySqlTools.Open();
//查询方法 表名 查询字段名 判断字段名 判断符号 条件成立数据
var ds = mySqlTools.SelectWhere("userdata", new[] { "UID" }, new[] { "User" }, new[] { "=" }, new[] { "imdork" });
//SelectWhere方法会返回Dataset类对象, 声明ds变量接收如上图
// 方法第一个参数 方法第二个参数
//调用MysqlTools 工具类 Dataset类对象 查询字段
object values = MysqlTools.GetValue(ds, "UID");
print(values); //最后打印15924
//关闭数据库
mySqlTools.Close();
最后控制台打印:
根据条件查询 当前行所有字段数据方法
//查询方法 表名 判断字段名 判断符号 条件成立数据
var ds = mySqlTools.SelectWhere("userdata", new[] { "User" }, new[] { "=" }, new[] { "ddxj1" });
//SelectWhere方法会返回Dataset类对象, 声明ds变量接收如上图
//MysqlTools 工具类使用GetValue方法负责接收DataSet对象 给字段名称返回对应数据
//调用MysqlTools 工具类 Dataset类对象 查询字段
object values = MysqlTools.GetValue(ds, "UID");
print(values); //最后打印15924
问题解决方案
注:如果跟着楼上步骤没有任何问题,下面就不用跟着做了。
如果Mysql安装时出现问题
因为你安装了其他Mysql版本没有删除干净。
解决问题办法:
如果在控制台输入以下指令出现问题
mysqld --install
如果显示The service already exists!
解决办法 先以管理员打开控制台 输入
sc query mysql

如上图 如果发现有则输入
sc delete mysql

如上图表示删除成功
然后在控制台输入指令
sc query mysql

Mysql已经删除成功