Unity 使用数据库(MySql)

2020-11-25 14:59发布

ADO.NET,需要了解到Connection 联系连接,Command命令, DataReader对象DataAdapter 数据适配器DataSet 资料组这几个对象,他们是操作数据库的重要对象;

Connection:它是建立应用程序与数据库之间的连接通道,起到连接数据库的功能。其访问形式根据数据库的类型而定。以MySQL为例,则连接类型为MySqlConnection。这种连接需要引入相应数据库的命名空间,这里我们需要引入System.Data.MySqlClient。想要引入这个命名空间还需要System.Data.dll文件,就在Unity安装源目录下即可找到,复制导入Unity的Asset即可。

using UnityEngine;

using System.Data;  //注意引用命名空间

using MySql.Data.MySqlClient;



public class OpenSql : MonoBehaviour {


    //数据库名称

    private string dataname = "czhenya01";

    //数据库Ip地址

    private string ipAddress = "127.0.0.1";

    //用户名

    private string root = "root";

    //密码

    private string paw = "123456";


    //创建数据库

    MySqlConnection mySq1Con ;


    // Use this for initialization

    void Start () {

        //此字符串是自己的本地数据库信息

        connectionStr = string.Format("Server={0};Database={1};User ID={2};Password={3}",ipAddress,dataname,root,paw);

        Debug.Log(connectionStr);

        //根据传入字符串,实例化自己的数据库

        mySq1Con = new MySqlConnection(connectionStr);        


    }


    void OnGUI()

    {

        //打开数据库

        if (GUILayout.Button("OpenMySql"))

        {

            if (mySq1Con != null)

            {

                mySq1Con.Open();

                Debug.Log("打开数据库成功");

            }

        }

Command :当应用程序建立与数据源的连接后,就需要Command对象来执行命令并从数据源中返回结果,,,它是一个数据命令对象,主要功能就是想数据库发送查询,更新,删除,修改,操作SQL语句,这边需要键下它执行SQL的几种方法:ExcuteNonQuwry(),该方法是返回受影响的行数可用于统计(数据库的增删改查都在这里面完成)。 
代码实现:(代码放在上面的ONGUI()里面

 //输入查询语句点击并查询

      string cmdInp = "insert into czhenya001 values(2000,'chenzy',14,'男')";

        if (GUILayout.Button("SelectMySql"))

        {

            //创建操作数据库的实例(参数是查询语句,数据库)

            MySqlCommand command = new MySqlCommand(cmdInp, mySq1Con);


            if (command != null)

            {

               //返回的是该语句影响的数据库的行数

                int i = command.ExecuteNonQuery();

                Debug.Log(i);

            }

        }

注:上面的查询语句是写成字符串,作为参数传递到函数里面的,,是不区分大小写的,只要格式和单词拼写正确即可,,,

ExecuteReader(),返回一个MySqlDataReader对象,可进行数据的读取,实现代码如下: 
代码放在上面的ONGUI()里面

//显示查询到的信息

    string cmdSel = "select * from czhenya001";

        if (GUILayout.Button("SelMySql"))

        {

            //创建操作数据库的实例(参数是查询语句,数据库)

            MySqlCommand command = new MySqlCommand(cmdSel, mySq1Con);


            if (command != null)

            {

                MySqlDataReader msdr = command.ExecuteReader();

                while (msdr.Read())

                {

                    //输出第1,2列信息,,,

                    Debug.Log(msdr[0].ToString()+"\t"+msdr[1].ToString());

                }

                command.Dispose(); //释放内存

            }

        }

DataAdapter:数据适配器,是DataSet与数据源之间的桥梁,它有两种工作方式:一种数是通过Command对象执行SQL语句,从数据源中检索数据,并将检索到的数据填充到DataSet对象,还有一种事把DataSet对象所做的更改写入数据源,,,点击查看vs中DataAdaper使用实例 
DataSet:其实上面已经用到了这个对象,他是整个体系的核心,其数据来源于数据库或者XML,为了从数据库中获取数据,需要使用数据适配器从数据中查询数据。 
点击查看VS中DataSet实例

你也可以是是试着做个输入框来更改SQL语句,简易效果图如下:





作者:Czhenya

链接:https://czhenya.blog.csdn.net/article/details/78022674

来源:CSDN
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。