Unity服务器开发01:C#连接MySQL数据库

编程入门 行业动态 更新时间:2024-10-28 12:21:23

Unity<a href=https://www.elefans.com/category/jswz/34/1771423.html style=服务器开发01:C#连接MySQL数据库"/>

Unity服务器开发01:C#连接MySQL数据库

Unity服务器开发01:C#连接MySQL数据库

前言:
在复习了数据库知识后,今天起正式开始学习unity的客户端与服务端,目标是做出一个联网的游戏demo!工欲善其事必先利其器,在开发之前第一件事就是搭建开发环境,做好设计。第一步是先准备好数据库。

(一)联网游戏的原理图
(二)安装MySQL数据库
数据库是服务端的基础,我选择了MySQL,轻量而且性能好。
MySQL版本:5.7.17.0
MySQL下载:官网下载链接

(三)在MySQL中创建数据库并设计存储数据的表

PS:MySQL操作帮助文档位置:C:\Program Files (x86)\MySQL\Connector.NET 6.9\Documentation

(四)
在VS中创建一个控制台应用程序,注意框架选择.net4.5,在右侧引用栏添加MySQL引用。
引用MySQL路径:C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.5

(五)使用C#连接MySQL数据库并进行交互测试
这里给出测试连接和操作的代码,将每种操作都封装在方法里,搬运代码时只需要取消掉想测试的方法的注释就可以了,运行结果就是控制台的界面(就不截图展示了),然后能在MySQL中看见自己数据库的变化(刷新一遍)。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;//引入mysqlnamespace CSharp直接连接MySQL
{class Program{static void Main(string[] args){//将操作都封装在方法里了,测试的时候取消下方注释直接调用方法就行,不要同时调用多个方法,可能会有冲突// Read();//读取查询//Insert();//插入数据//Update();//更新数据//Delete();//删除数据// ReadUsersCount();//查询一些值//ExecuteScalar();//执行一些查询,返回一个单个的值Console.ReadKey();}static void Read()//封装测试-数据库查询操作{string connectStr = "server=127.0.0.1;port=3306;database=mygamedb;user=root;password=root;";//sql连接数据参数MySqlConnection conn = new MySqlConnection(connectStr);//还未与数据库建立连接try//捕捉异常,并打印{conn.Open();//建立连接Console.WriteLine("已经与数据库建立连接");string sql = "select * from users";//数据库操作命令,查询users表//string sql = "select id,username,registerdate from users";//数据库操作命令,查询users表指定列MySqlCommand cmd = new MySqlCommand(sql, conn);//数据库命令类//cmd.ExecuteReader();//执行一些查询//cmd.ExecuteNonQuery();//插入,删除//cmd.ExecuteScalar();//执行一些查询,返回一个单个的值MySqlDataReader reader = cmd.ExecuteReader();//reader.Read();//每次调用Read,读取一条记录,打开第一行。把reader当作一本书//Console.WriteLine(reader[0].ToString()+reader[1].ToString()+ reader[2].ToString());//打印当前行的三列数据//reader.Read();//第二次调用,打开第二行的数据//Console.WriteLine(reader[0].ToString() + reader[1].ToString() + reader[2].ToString());//打印当前行的三列数据while(reader.Read())//Read每次调用会返回Ture或False的值,使用while循环来全部遍历{Console.WriteLine("执行了一次用户名与密码的查询");Console.WriteLine(reader[0].ToString() + reader[1].ToString() + reader[2].ToString());//打印当前行的三列数据//其他方式:// Console.WriteLine(reader.GetInt32(0) + " " + reader.GetString(1) + " " + reader.GetString(2));// Console.WriteLine(reader.GetInt32("id") + " " + reader.GetString("username") + " " + reader.GetString("password"));}}catch(Exception e){Console.WriteLine(e.ToString());}finally//无论如何都会去执行的语句{conn.Close();//关闭连接}}static void Insert()//封装测试-数据库插入操作{string connectStr = "server=127.0.0.1;port=3306;database=mygamedb;user=root;password=root;";//sql连接数据参数MySqlConnection conn = new MySqlConnection(connectStr);//还未与数据库建立连接try//捕捉异常,并打印{conn.Open();//建立连接Console.WriteLine("已经与数据库建立连接");string sql = "insert into users(username,password) values('游客','123')";//数据库操作命令,插入数据//string sql = "insert into users(username,password,registerdate) values('游客2','123','2021-1-3')";//数据库操作命令,插入数据//string sql = "insert into users(username,password,registerdate) values('游客3','123','"+DateTime.Now+"')";//数据库操作命令,插入数据MySqlCommand cmd = new MySqlCommand(sql, conn);//数据库命令类int result = cmd.ExecuteNonQuery();//返回值是数据库受影响行数的记录}catch(Exception e){Console.WriteLine(e.ToString());}finally//无论如何都会去执行的语句{conn.Close();//关闭连接}}static void Update()//封装测试-数据库更新数据{string connectStr = "server=127.0.0.1;port=3306;database=mygamedb;user=root;password=root;";//sql连接数据参数MySqlConnection conn = new MySqlConnection(connectStr);//还未与数据库建立连接try//捕捉异常,并打印{conn.Open();//建立连接Console.WriteLine("已经与数据库建立连接");string sql = "update users set username ='更新后的用户名',password='123' where id =3";//数据库操作命令,更新数据//string sql = "insert into users(username,password,registerdate) values('游客2','123','2021-1-3')";//数据库操作命令,插入数据//string sql = "insert into users(username,password,registerdate) values('游客3','123','"+DateTime.Now+"')";//数据库操作命令,插入数据MySqlCommand cmd = new MySqlCommand(sql, conn);//数据库命令类int result = cmd.ExecuteNonQuery();//返回值是数据库受影响行数的记录}catch (Exception e){Console.WriteLine(e.ToString());}finally//无论如何都会去执行的语句{conn.Close();//关闭连接}}static void Delete()//封装测试-删除数据{string connectStr = "server=127.0.0.1;port=3306;database=mygamedb;user=root;password=root;";//sql连接数据参数MySqlConnection conn = new MySqlConnection(connectStr);//还未与数据库建立连接try//捕捉异常,并打印{conn.Open();//建立连接Console.WriteLine("已经与数据库建立连接");string sql = "delete from users where id=7 ";//数据库删除数据//string sql = "insert into users(username,password,registerdate) values('游客2','123','2021-1-3')";//数据库操作命令,插入数据//string sql = "insert into users(username,password,registerdate) values('游客3','123','"+DateTime.Now+"')";//数据库操作命令,插入数据MySqlCommand cmd = new MySqlCommand(sql, conn);//数据库命令类int result = cmd.ExecuteNonQuery();//返回值是数据库受影响行数的记录}catch (Exception e){Console.WriteLine(e.ToString());}finally//无论如何都会去执行的语句{conn.Close();//关闭连接}}static void ReadUsersCount()//封装测试-查询一些值{string connectStr = "server=127.0.0.1;port=3306;database=mygamedb;user=root;password=root;";//sql连接数据参数MySqlConnection conn = new MySqlConnection(connectStr);//还未与数据库建立连接try//捕捉异常,并打印{conn.Open();//建立连接Console.WriteLine("已经与数据库建立连接");string sql = "select count(*) from users";//数据库操作命令,读取数据行数MySqlCommand cmd = new MySqlCommand(sql, conn);//数据库命令类MySqlDataReader reader = cmd.ExecuteReader();reader.Read();int count = Convert.ToInt32(reader[0].ToString());Console.WriteLine(count);}catch(Exception e){Console.WriteLine(e.ToString());}finally//无论如何都会去执行的语句{conn.Close();//关闭连接}}static void ExecuteScalar()//封装测试-执行一些查询,返回一个单个的值{string connectStr = "server=127.0.0.1;port=3306;database=mygamedb;user=root;password=root;";//sql连接数据参数MySqlConnection conn = new MySqlConnection(connectStr);//还未与数据库建立连接try//捕捉异常,并打印{conn.Open();//建立连接Console.WriteLine("已经与数据库建立连接");string sql = "select count(*) from users";//数据库操作命令,读取数据行数MySqlCommand cmd = new MySqlCommand(sql, conn);//数据库命令类object o = cmd.ExecuteScalar();int count = Convert.ToInt32(o.ToString());Console.WriteLine(count);}catch (Exception e){Console.WriteLine(e.ToString());}finally//无论如何都会去执行的语句{conn.Close();//关闭连接}}}
}

更多推荐

Unity服务器开发01:C#连接MySQL数据库

本文发布于:2023-07-28 15:48:35,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1240053.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:服务器   数据库   Unity   MySQL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!