链接数据库有几种方法:第一种直连数据库,这种方法发布上的游戏都不会这么做,因为你的数据库账号密码都写在代码里了,只要懂的人反编译就可以知道你数据库里的东西,一般都用第二种方法,这个方法就是调用服务器,在服务器上写数据库的代码,具体我会再后面说,今天我就先说一下直连数据库,毕竟在客户没有给你服务器情况下你只能做直连,给客户看效果,下面代码附赠详解

using UnityEngine;
using System.Collections;
using System.Data;
using System.Data.SqlClient;//链接sql sever的引用
using System;
using MySql.Data;
using MySql.Data.MySqlClient;//链接MySql的引用

//数据库的链接地址
        string url = @"Database=数据库名;Data Source=ip地址;User Id=用户名(如果没有修改就是root);Password=密码;port=端口号";
        MySqlConnection con = new MySqlConnection(url);//MySqlConnection链接数据库的功能
        //数据库的查询语句
        string sql = "SELECT Problem,A,B,C,D,Trueask FROM testDB.HistoryOne";
        con.Open();//打开数据库
        //创建MySqlCommand,并指定其使用con链接数据库
        MySqlCommand com = new MySqlCommand(sql, con);//数据库命令定义
        MySqlDataAdapter da = new MySqlDataAdapter(com);
        DataTable dt = new DataTable();
        da.Fill(dt);
        com.ExecuteNonQuery();//执行SQL
        ask_Text.text = dt.Rows[0]["列名"].ToString();//这块就是将该数据库的列的内容显示到text 里

SqlCommand 以下功能用于执行命令在 SQL Server 数据库的以下方法(MySql同样):

ExecuteNonQuery:它的返回值类型为int型。多用于执行增加,删除,修改数据。返回受影响的行数。当select操作时,返回-1。
        ExecuteReader:它的返回类型为SqlDataReader。此方法用于用户进行的查询操作。使用SqlDataReader对象的Read();方法进行逐行读取。
        ExecuteScaler:它的返回值类型多位int类型。它返回的多为执行select查询。得到的返回结果为一个值的情况,比如使用count函数求表中记录个数或者使用sum函数求和等。
        BeginExecuteNonQuery:启动的 TRANSACT-SQL 语句或由此所述的存储的过程的异步执行SqlCommand、 通常执行命令,例如插入、 删除、 更新和 SET 语句。 每次调用BeginExecuteNonQuery必须通过调用配对EndExecuteNonQuery完成操作,通常在单独的线程上的。
        BeginExecuteReader:启动的 TRANSACT-SQL 语句或由此所述的存储的过程的异步执行SqlCommand和一个或多个结果集从服务器检索。 每次调用BeginExecuteReader必须通过调用配对EndExecuteReader完成操作,通常在单独的线程上的。
        BeginExecuteXmlReader:启动此 SqlCommand 描述的 Transact-SQL 语句或存储过程的异步执行。 每次调用BeginExecuteXmlReader必须通过调用配对EndExecuteXmlReader,它完成此操作,通常出现在单独的线程,并返回XmlReader对象。
        ExecuteXmlReader:将 CommandText 发送到 Connection,并生成一个 XmlReader 对象。

数据库的增,删,改,查语句

查询:普通查询-(MySql与SqlSever)select from 表名 where 条件;随机查询-(SqlSever)select Top 5*From 表名 Order By NEWID();(MySql)select*from 表名 ORDER BY RAND() LIMIT 5
插入:insert into 表名(字段列表).values(值列表)
更新:Update 表名 set 字段名=值 where 条件子句
删除:delete from 表名 where 条件子句(id叠加:delete from;id不叠加truncate table)
将现有表数据添加到一个已有表:insert into 已有的新表(列名)select 原表列名 from 原表名

数据库的嵌套查询

连接两个数据表:SELECT*FROM 表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号
连接三个数据表:SELECT*FROM(表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号)INNER JOIN 表3 ON 表1.字段号=表3.字段号

这样写完就可以在unity里调用但是想要打包出来的话还需要I18N.CJK.dll;I18N.dll;I18N.West.dll文件才可以打包出来用但是注意ios不可以,iOS要怎么直连数据库这个问题我还没有解决,等有方法了我在更新
这个文件的位置在Editor/Data/Mono/lib/mono/2.0里
System.Data.dll文件也在这里,而调用MySql数据库的是MySql.Data.dll这个文件