Unity 使用数据库(MySql)

举报
陈言必行 发表于 2021/08/13 23:40:29 2021/08/13
【摘要】 ADO.NET,需要了解到Connection 联系连接,,Command命令, ,DataReader对象,DataAdapter 数据适配器,DataSet 资料组这几个对象,他们是操作数据库的重要对象; Connection:它是建立应用程序与数据库之间的连接通道,起到连接数据库的功能。其访问形式根据数据库的类型而定。以MySQL为例,则连接类型为MySqlCo...

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("打开数据库成功"); } }
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40

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); } }
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

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

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(); //释放内存 } }
  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

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

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

文章来源: czhenya.blog.csdn.net,作者:陈言必行,版权归原作者所有,如需转载,请联系作者。

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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。