找回密码
 立即注册
查看: 289|回复: 0

[笔记] Unity中将学生成绩更新到MySQL数据表中

[复制链接]
发表于 2022-6-19 17:02 | 显示全部楼层 |阅读模式

  • 前言介绍
  • 数据库的创建
  • 代码实现
前言介绍

当学生完成答题后,需要将成绩更新到对应的数据库中。在登录场景中场景中使用了 DontDestroyOnLoad( )函数,使得登录以后的场景中都会显示学号与姓名。在保存成绩时,会根据学号(唯一标识),找到该学生的信息,并更新成绩数据。
using UnityEngine;
public class DontDestroyGam : MonoBehaviour//加载场景时不摧毁该物体
{
    public static DontDestroyGam instance = null;              //为这个类创建实例
    void Awake()
    {
        if (instance == null) { instance = this; }          //为这个类创建实例
        else if (instance != this) { Destroy(gameObject); } //保证这个实例的唯一性
        DontDestroyOnLoad(gameObject);                      //加载场景时不摧毁
    }
}
将DontDestroyGam脚本挂载到显示学号与姓名的物体上,这样就可以在所有场景都会显示该学生姓名与学号了。
数据库的创建




图示  学生信息表的创建



图示  表中数据的添加

代码实现

在编写数据库交互代码时,建议先在MySQL Command Line Client中编写满足我们需求的SQL语句,再将测试正确的语句编写到C#中即可。



图示  更新SQL语句的编写

更新语句格式: update <表名> set <插入的列>=值 where (条件);
例:update studentinfo set scorea=100 where studentid='11111';
说明:将studentinfo 表中,studentid等于'11111'的行中的scorea属性值设置为100。



图示  更新后的表

InsertScore脚本

using MySql.Data.MySqlClient;
using UnityEngine;
using UnityEngine.UI;

public class InsertScore : MonoBehaviour
{
    private string host = "127.0.0.1";//IP地址
    private string port = "3306";  //端口号   
    private string userName = "root";//用户名
    private string password = "123456";//密码
    private string databaseName = "environmentalartdesignschemas";//数据库名称
    private MySqlAccess mysql; //封装好的数据库类
    private string StudentID;
    void Start()
    {
        mysql = new MySqlAccess(host, port, userName, password, databaseName);
        StudentID = GameObject.Find("InfoPanel/StudentID").transform.GetComponent<Text>().text;//获取登录的学生学号
    }
    public void ButDown()//按下按钮时,将学生成绩更新为50
    {
        InsertScoreA(50);
    }
    private void InsertScoreA(int scoreA)
    {
        mysql.OpenSql();
        string strClear = string.Format("update studentinfo set scorea = '{0}' where studentid = '{1}';", scoreA, StudentID);
        MySqlCommand cmd = new MySqlCommand(strClear, mysql.mySqlConnection);
        MySqlDataReader dataReader = cmd.ExecuteReader();
        dataReader.Close();
        mysql.CloseSql();
    }
}



图示  学生的姓名与学号

将InsertScore脚本中的ButDown()方法注册到点击的按钮上,即可。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-5-3 19:08 , Processed in 0.663108 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表