• Unity 连接MySql数据库


    将四个动态链接库放在Assets文件下建plugins下

    创建MySqlAccess

    public class MySqlAccess
    {
        //连接类对象
        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;
    
        /// <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;
            OpenSql();
        }
    
        /// <summary>
        /// 打开数据库
        /// </summary>
        public void OpenSql()
        {
            try
            {
                string mySqlString = string.Format("Database={0};Data Source={1};User Id={2};Password={3};port={4};charset=utf8"
                    , databaseName, host, userName, password, port);
                mySqlConnection = new MySqlConnection(mySqlString);
                //if(mySqlConnection.State == ConnectionState.Closed)
                mySqlConnection.Open();
            }
            catch (Exception e)
            {
                throw new Exception("服务器连接失败,请重新检查MySql服务是否打开。" + e.Message.ToString());
            }
    
        }
    
        /// <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;
        }
        /// <summary>
        /// 根据Uid更新数据库信息
        /// </summary>
        /// <param name="tableName">需要更新的表名</param>
        /// <param name="uid">需要更新的用户id</param>
        /// <param name="items">需要更新的参数</param>
        /// <param name="values">需要更新的值</param>
        public void Update(string tableName, int uid, string[] items, string[] values)
        {
            string query = "Update  " + tableName + " set ";
            for (int i = 0; i < items.Length - 1; i++)
            {
                query += items[i] + "='" + values[i] + "',";
            }
            query += items[items.Length - 1] + "='" + values[items.Length - 1];
            query += "' where user_id=" + uid + ";";
            QuerySet(query);
        }
    }
    
  • 相关阅读:
    微软的十年之变
    如何在易受攻击的SSD上禁用硬件BitLocker加密
    Tech Summit 2018见闻:我们,MVP
    Tech Summit 2018见闻:IT之家读者捕捉铺路集团董事长玄隐
    Windows 10怎么了?
    循环队列
    模拟键盘事件
    模拟鼠标事件
    进程间通信——— 匿名管道
    进程间通信——— LPC
  • 原文地址:https://www.cnblogs.com/code-fun/p/14279613.html
Copyright © 2020-2023  润新知