IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity使用Mysql(添/删/改/查)(保姆级) -> 正文阅读

[游戏开发]Unity使用Mysql(添/删/改/查)(保姆级)

UnityDemo版本

    Unity版本:2020.3.25;
    Visual Studio版本: 2019;MySql.Data.dll版本:5.2.3
    MySql版本:5.7.35

Mysql下载地址教程

Mysql下载地址

在这里插入图片描述

在这里插入图片描述
下载完成后解压到任意盘即可(楼主我选择的是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 退出

exit

在这里插入图片描述
接下来进行环境搭配
此电脑右键->属性->高级系统设置
在这里插入图片描述
在这里插入图片描述
新建系统变量

在这里插入图片描述
变量名为:MYSQL_HOME
变量值为你的MySQL安装路径
点击确定
在这里插入图片描述
找到path进行编辑
在这里插入图片描述
新建环境变量
变量为:%MYSQL_HOME%\bin

%MYSQL_HOME%\bin

在这里插入图片描述
在桌面找到此电脑右键此电脑->管理->服务与应用程序->服务

在这里插入图片描述

找到mysql->右键属性
将启动类型改为手动(防止开机速度变慢)
在这里插入图片描述

以上操作已经完成Mysql环境搭建
每次开机以管理员方法打开控制台输入命令

net start mysql

在这里插入图片描述

Navicat可视化窗口下载教程

下载地址
提取码: qy8s

安装教程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

使用Navicat可视化窗口

点击连接

在这里插入图片描述
在点击mysql 最后弹出以下窗口
在这里插入图片描述
点击高级 自定义设置位置
在这里插入图片描述

然后点击确定
在这里插入图片描述
连接成功如下图
在这里插入图片描述
打开数据库出现以下界面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后点击保存 弹出以下图
在这里插入图片描述
在这里插入图片描述

Mysql.data.dll下载地址

下载地址
提取码: wr2g

本次Demo下载地址

下载地址

网盘下载地址
提取码: 18gd

下载好后直接把资源包直接放进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

using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using MySql.Data.MySqlClient;
using UnityEngine;
/// <summary>
/// Mysql添/删/改/查/框架   切记使用该类方法 除了(Connect方法)其他方法 先调用Open() 使用完后 在Close()掉
/// </summary>
public class SqlHelper
{
    string _server, _port, _user, _password, _datename, _format;
    string connectStr;
    MySqlConnection conn;
    public SqlHelper(string host, string port, string user, string passwd, string database, string format = "utf8")
    {
        Connect(host,port,user,passwd,database,format);
    }  
    /// <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();//关闭连接
    }

    #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);
    }
    /// <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);
    }
   
    /// <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>
    /// 当指定字段满足一定条件时,更新指定字段的数据
    /// 例如更新在user这个表中字段名为userAccount的值等于10086时,将对应userPwd字段的值改成newMd5SumPassword
    /// ("users", new string[] { "userPwd" }, new string[] { newMd5SumPassword }, "userAccount", "10086")
    /// </summary>
    /// <param name="tableName">表名</param>
    /// <param name="cols">字段</param>
    /// <param name="colsValues">字段值</param>
    /// <param name="selectKey">指定的字段</param>
    /// <param name="selectValue">指定字段满足的条件</param>
    /// <returns></returns>
    public int UpdateInto(string tableName, string[] cols, string[] colsValues, string[] selectKeys, string[] selectValues)
    {
        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] + "' ";
        }
        Debug.LogFormat("query: {0}", query);
        return ExecuteNonQuery(query);
    }
    /// <summary>
    /// 当指定字段满足一定条件时,更新指定字段的数据
    /// 例如更新在user这个表中字段名为userAccount的值等于10086时,将对应userPwd字段的值改成newMd5SumPassword
    /// ("users", new string[] { "userPwd" }, new string[] { newMd5SumPassword }, "userAccount", "10086")
    /// </summary>
    /// <param name="tableName">表名</param>
    /// <param name="cols">字段</param>
    /// <param name="colsValues">字段值</param>
    /// <param name="selectKey">指定的字段</param>
    /// <param name="selectValue">指定字段满足的条件</param>
    /// <returns></returns>
    public int UpdateInto<T>(string tableName, string[] cols, T[] colsValues, string[] selectKeys, string[] selectValues) where T : struct
    {
        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] + "' ";
        }
        Debug.LogFormat("query: {0}", query);
        return ExecuteNonQuery(query);
    }
    /// <summary>
    /// 当指定字段满足一定条件时,更新指定字段的数据
    /// 例如更新在user这个表中字段名为userAccount的值等于10086时,将对应userPwd字段的值改成newMd5SumPassword
    /// ("users", new string[] { "userPwd" }, new string[] { newMd5SumPassword }, "userAccount", "10086")
    /// </summary>
    /// <param name="tableName">表名</param>
    /// <param name="cols">字段</param>
    /// <param name="colsValues">字段值</param>
    /// <param name="selectKey">指定的字段</param>
    /// <param name="selectValue">指定字段满足的条件</param>
    /// <returns></returns>
    public int UpdateInto(string tableName, string[] cols, object[] colsValues, string[] selectKeys, string[] selectValues) 
    {
        string query = null;
        if (colsValues[0] is string)
        {
            query = "UPDATE " + tableName + " SET " + cols[0] + " = " + string.Format("'{0}'", colsValues[0]);
        }
        else
        {
            query = "UPDATE " + tableName + " SET " + cols[0] + " = " + colsValues[0];
        }
        for (int i = 1; i < colsValues.Length; ++i)
        {
            if (colsValues[i] is string)
            {
                query += ", " + cols[i] + " =" + string.Format("'{0}'", colsValues[i]);
            }
            else
            {
                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] + "' ";
        }
        Debug.LogFormat("query: {0}", query);
        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 删除语句
    /// <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] + "'";
        }
        Debug.LogFormat("query: {0}", 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
*/
/// <summary>
/// mysql工具类
/// </summary>
public class MysqlTools 
{
    /// <summary>
    /// 初始化对象
    /// </summary>
    public static MysqlTools Instance { get; }
    static MysqlTools()
    {
        Instance = new MysqlTools();
    } 
    /// <summary>
    /// 获取表中数据 字典中第一个键是条数 第二个是字段名 对应字段值
    /// 条数从0开始
    /// </summary>
    /// <param name="ds">数据表类</param>
    /// <returns></returns>
    public Dictionary<int, Dictionary<string, object>> TableData(DataSet ds)
    {
        Dictionary<int, Dictionary<string,object>> tableList = new Dictionary<int, Dictionary<string, object>>();
        //声明条数
        int Count = -1;
        //遍历DataSet表条数
        for (int i = 0; i < ds.Tables.Count; i++)
        {
            //遍历表该条字段数量
            for (int j = 0; j < ds.Tables[i].Rows.Count; j++)
            {
                //添加条数
                Count++;
                //根据该条数 并新建一块字典空间存储到该字典中
                tableList.Add(Count, 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;
    }
    /// <summary>
    /// 获取单个数据
    /// </summary>
    /// <param name="ds">数据表类</param>
    /// <param name="Name">字段名称</param>
    /// <returns></returns>
    public object GetValue(DataSet ds,string Name)
    {
        //遍历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];
                    }
                }
            }
        }
        return null;
    }
    /// <summary>
    /// 获取多个数据
    /// </summary>
    /// <returns></returns>
    public object[] GetValues(DataSet ds, string Name)
    {
        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.Count == 0 ? null : list.ToArray();
    }
}

本项目脚本Test

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

public class Test : MonoBehaviour
{

    void Start()
    {
        //创建数据库类                 IP地址       端口    用户名   密码     数据库项目名称
        var mySqlTools = new SqlHelper("127.0.0.1", "3306", "root", "123456", "user");
        //打开数据库
        mySqlTools.Open();
        //查询方法
        FindMysql(mySqlTools, "userdata", new[] { "UID", "User", "Password" });

        //  插入方法                表名         字段名                             插入数据
        // mySqlTools.InsertInto("userdata", new[] { "UID", "User", "Password" },new[] {"水神","ddxj1","123456" });

        //  更新方法             表名         更新字段名             更新数据     查询条件字段      条件成立字段
        //mySqlTools.UpdateInto("userdata",new[] {"Password" },new[] {"456789" },new[] { "User"},new[] { "ddxj1"});

        //  删除方法          表名          删除字段        删除数据         
        // mySqlTools.Delete("userdata", new[] { "User" }, new[] { "ddxj1" });

        // 从SqlHelper查询出来数据库 都会返回Dataset       DataSet类                  字段名
        //       返回对象object          获取数据方法    
        //var GetValues = MysqlTools.Instance.GetValue(mySqlTools.Select("userdata"), "User");
        //print(GetValues);

        //查询方法              表名        查询字段名       判断字段名       判断符号        条件成立数据
        // var ds = mySqlTools.SelectWhere("userdata", new[] { "UID" }, new[] { "User" }, new[] { "=" }, new[] { "imdork" });

        //调用MysqlTools 工具类             存储Dataset  查询字段
        // object values = MysqlTools.Instance.GetValue(ds, "UID");
        // print(values); //最后打印15924

        //数据库更新第二种使用方法
        //(Ints字段在数据库为int)  (Strings 字段在数据库为text)
        //                      表名       更新字段名(string)          更新数据(object)                查询条件字段        条件成立字段
        //mySqlTools.UpdateInto("data1", new[] { "Ints", "Strings" }, new object[] { 12369, "密码" }, new[] { "Strings" }, new[] { "宝宝" });
        //mySqlTools.UpdateInto("data1", new[] { "Ints", "Strings" }, new object[] { 555, "账号" }, new[] { "Ints" }, new[] { "12369" });
        

        //关闭数据库
        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.Instance.TableData(ds);
        DebugMysql(pairs);      
    }
    /// <summary>
    /// 打印查询数据库
    /// </summary>
    /// <param name="pairs"></param>
    private void DebugMysql(Dictionary<int,Dictionary<string,object>> pairs)
    {
        foreach (var Line in pairs)
        {
            foreach (var table in Line.Value)
            {
                string tableList = string.Format("第{0}行,表字段名对应数据是 {1}", Line.Key + 1, table);
                print(tableList);
            }
        }
    }
}

使用数据库添/删/改/查

在这里插入图片描述

切记使用SqlHelper所有方法除了Connent方法外 其他方法一定要先Open(),使用完后在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();

运行后如下图
在这里插入图片描述

更改数据方法

  //创建数据库类                   IP地址       端口    用户名   密码     数据库项目名称
 var mySqlTools = new SqlHelper("127.0.0.1", "3306", "root", "123456", "user");
 //打开数据库
 mySqlTools.Open();
 //  更新方法             表名         更新字段名             更新数据     查询条件字段      条件成立字段
 mySqlTools.UpdateInto("userdata",new[] {"Password" },new[] {"456789" },new[] { "User"},new[] { "ddxj1"});
 //关闭数据库
 mySqlTools.Close();

运行结果于下图
在这里插入图片描述

更改数据第二种方式

(Ints字段在数据库为int) (Strings 字段在数据库为text)

在这里插入图片描述
需求:查找数据库Ints字段为12369 更新对应表(Ints=555和Strings=账号)
在这里插入图片描述
注意:Ints是值类型 更改数据应该写555 不要写"555"
执行下面代码后

//创建数据库类                 IP地址       端口    用户名   密码     数据库项目名称
var mySqlTools = new SqlHelper("127.0.0.1", "3306", "root", "123456", "user");
//打开数据库
mySqlTools.Open();
//数据库更新第二种使用方法
//(Ints字段在数据库为int)  (Strings 字段在数据库为text)
//                      表名       更新字段名(string)          更新数据(object)                查询条件字段        条件成立字段
mySqlTools.UpdateInto("data1", new[] { "Ints", "Strings" }, new object[] { 555, "账号" }, new[] { "Ints" }, new[] { "12369" });
 //关闭数据库
 mySqlTools.Close();

在这里插入图片描述

删除数据方法

//创建数据库类                    IP地址       端口    用户名   密码     数据库项目名称
 var mySqlTools = new SqlHelper("127.0.0.1", "3306", "root", "123456", "user");
 //打开数据库
 mySqlTools.Open();
 //  删除方法          表名          删除字段        删除数据         
 mySqlTools.Delete("userdata", new[] { "User" }, new[] { "ddxj1" });
 //关闭数据库
 mySqlTools.Close();

代码运行结果如下
在这里插入图片描述

数据库查询方法

需求:查询表中User 为imdork 对应UID 对应数据
在这里插入图片描述
代码如下:

//创建数据库类                   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" });
 //调用MysqlTools 工具类    第一个方法参数Dataset  查询字段
 object values = MysqlTools.Instance.GetValue(ds, "UID");
 print(values); //最后打印15924
 //关闭数据库
 mySqlTools.Close();

最后控制台打印:
在这里插入图片描述

问题解决方案

如果Mysql安装时出现问题

注:如果跟着楼上步骤没有任何问题,下面就不用跟着做了。

如果在控制台输入以下指令出现问题

 mysqld --install

如果显示The service already exists!
在这里插入图片描述

解决办法 先以管理员打开控制台 输入

sc query mysql

在这里插入图片描述
如上图 如果发现有则输入

sc delete mysql

在这里插入图片描述

然后在控制台输入指令

sc query mysql

在这里插入图片描述
则表示删除成功

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2022-01-16 13:26:03  更:2022-01-16 13:27:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 18:30:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码