PhotonServer教程

本文是一份使用C#、NHibernate和MySQL与PhotonServer结合开发游戏的教程。首先介绍了如何通过C#与数据库交互,接着讲解了如何利用NHibernate与MySQL进行对象关系映射。然后详细阐述了如何使用PhotonEngine搭建服务器项目,并将其集成到PhotonServer中。还涵盖了在Unity创建客户端、NHibernate嵌入服务器以及创建客户端与服务端的通信和同步移动的Demo等内容。
摘要由CSDN通过智能技术生成

学习目标:

PhotonServer教程
网络教程


学习内容:

学习Photon引擎的使用

学习产出:

1.首先我们先学习通过C#与数据库交互

首先,我们的C#与数据库交互的基础,就是连接(connector)。我们在安装数据库的时候通常都会安装各个版本的connector。
在这里插入图片描述
找到connector然后在VS2019创建C#控制台应用程序,然后在属性里面,将.NET版本与connector的版本保持一致
在这里插入图片描述
然后我们将所需要的connector拖入C#工程中,也可以通过右键引用,然后点击添加引用,然后找到对应的connector
在这里插入图片描述
然后,我们就可以编写代码了

 static void Read()
        {
   
            string connectStr = "server=127.0.0.1;port=3306;database=mygamedb;user=root;password=123456;";
            MySqlConnection conn = new MySqlConnection(connectStr);//并没有去跟数据库建立连接
            try
            {
   
                conn.Open();
                string sql = "select * from users";
                //string sql = "select id,username,registerdate from users";
                MySqlCommand cmd = new MySqlCommand(sql, conn);
                //cmd.ExecuteReader();//执行一些查询
                //cmd.ExecuteNonQuery();//插入 删除
                //cmd.ExecuteScalar();//执行一些查询,返回一个单个的值
                MySqlDataReader reader = cmd.ExecuteReader();
                //reader.Read();//读取下一页数据,如果读取成功,返回true,如果没有下一页了,读取失败的话,返回false
                //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())
                {
   
                    //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"));
                }

                //  Console.WriteLine("已经建立连接");
            }
            catch (Exception e)
            {
   
                Console.WriteLine(e.ToString());
            }
            finally
            {
   
                conn.Close();
            }
        }
 static bool VerifyUser(string username,string password)
        {
   
            string connectStr = "server=127.0.0.1;port=3306;database=mygamedb;user=root;password=123456;";
            MySqlConnection conn = new MySqlConnection(connectStr);//并没有去跟数据库建立连接
            try
            {
   
                conn.Open();
                //string sql = "select * from users where username = '"+username+"' and password='"+password+"'";//我们自己按照查询条件去组拼sql
                string sql = "select * from users where username =@para1 and password = @para2 ";

                MySqlCommand cmd = new MySqlCommand(sql, conn);
                cmd.Parameters.AddWithValue("para1", username);
                cmd.Parameters.AddWithValue("para2", password);

                MySqlDataReader reader = cmd.ExecuteReader();
                if (reader.Read())
                {
   
                    return true;
                }

                //  Console.WriteLine("已经建立连接");
            }
            catch (Exception e)
            {
   
                Console.WriteLine(e.ToString());
            }
            finally
            {
   
                conn.Close();
            }
            return false;
        }
 static void ReadUsersCount()
        {
   
            string connectStr = "server=127.0.0.1;port=3306;database=mygamedb;user=root;password=123456;";
            MySqlConnection conn = new MySqlConnection(connectStr);//并没有去跟数据库建立连接
            try
            {
   
                conn.Open();
                string sql = "select count(*) from users";
                //string sql = "select id,username,registerdate from users";
                MySqlCommand cmd = new MySqlCommand(sql, conn);
                MySqlDataReader reader = cmd.ExecuteReader();
                reader.Read();

                int count = Convert.ToInt32(reader[0].ToString());
                Console.WriteLine(count);

                //  Console.WriteLine("已经建立连接");
            }
            catch (Exception e)
            {
   
                Console.WriteLine(e.ToString());
            }
            finally
            {
   
                conn.Close();
            }
        }
static void ExcuteScalar()
        {
   
            string connectStr = "server=127.0.0.1;port=3306;database=mygamedb;user=root;password=123456;";
            MySqlConnection conn = new MySqlConnection(connectStr);//并没有去跟数据库建立连接
            try
            {
   
                conn.Open();
                string sql = "select count(*) from users";
                //string sql = "select id,username,registerdate from users";
                MySqlCommand cmd = new MySqlCommand(sql, conn);
                //MySqlDataReader reader = cmd.ExecuteReader();
                //reader.Read();

                //int count = Convert.ToInt32(reader[0].ToString());
                object o = cmd.ExecuteScalar();
                int count = Convert.ToInt32(o.ToString());
                Console.WriteLine(count);

                //  Console.WriteLine("已经建立连接");
            }
            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=123456;";
            MySqlConnection conn = new MySqlConnection(connectStr);//并没有去跟数据库建立连接
            try
            {
   
                conn.Open();
                // string sql = "insert into users(username,password) values('cxlvkee','234')";
                //string sql = "insert into users(username,password,registerdate) values('cweKu','234','2014-01-09')";
                string sql = "insert into users(username,password,registerdate) values('csdFu','234','" + DateTime.Now + "')";
                Console.WriteLine(sql);
                //string sql = "select id,username,registerdate from users";
                MySqlCommand cmd = new MySqlCommand(sql, conn);
                int result = cmd.ExecuteNonQuery();//返回值是数据库中受影响的数据的行数

                //  Console.WriteLine("已经建立连接");
            }
            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;";
            MySqlConnection conn = new MySqlConnection(connectStr);//并没有去跟数据库建立连接
            try
            {
   
                conn.Open();
                // string sql = "insert into users(username,password) values('cxlvkee','234')";
                //string sql = "insert into users(username,password,registerdate) values('cweKu','234','2014-01-09')";
                string sql = "update users set username='sdfsedfwer',password='23242342432' where id = 4";
                Console.WriteLine(sql);
                //string sql = "select id,username,registerdate from users";
                MySqlCommand cmd = new MySqlCommand(sql, conn);
                int result = cmd.ExecuteNonQuery();//返回值是数据库中受影响的数据的行数

                //  Console.WriteLine("已经建立连接");
            }
            catch (Exception e)<
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值