连接服务器步骤
客户端连接服务器:
当我们在客户端调用Connect()方法时,也就是每当有一个客户端连接到服务器端的时候,在服务器端有一个CreatePeer()方法,服务器就会调用CreatePeer()方法,然后创建出来一个PeerBase的一个对象,我们使用的是ClientPeer的对象,这个对象是由PhotonServer来管理的,后续的服务器端和客户端的交互就是通过ClientPeer来处理的
客户端发送请求和服务器端的回应:
命令语句(增删改查)
1、查询一条数据
string connect Str = “server=127.0.0.1;port=3306;database=mygamedb;user=root;password=root”;
MySqlConnection connect = new MySqlConnection(connectStr);//并没有跟数据库建立链接
connect.Open();//跟数据库建立链接
Console.WriteLine(“数据库链接成功!”);
string sql = “select * from goods”;
MySqlCommand cmd = new MySqlCommand(sql, connect);
MySqlDataReader reader = cmd.ExecuteReader();
reader.Read();//读取第一条
Console.WriteLine(reader[0] + " " + reader[1]+ " " + reader[2]+ " " + reader[3]);
reader.Read();//读取第二条
Console.WriteLine(reader[0] + " " + reader[1]+ " " + reader[2]+ " " + reader[3]);
connect.Close();//关闭链接
Console.ReadKey();//让程序暂停一下
2、查询所有数据
string connect Str = “server=127.0.0.1;port=3306;database=mygamedb;user=root;password=root”;
MySqlConnection connect = new MySqlConnection(connectStr);//并没有跟数据库建立链接
connect.Open();//跟数据库建立链接
Console.WriteLine(“数据库链接成功!”);
string sql = “select * from goods”;
MySqlCommand cmd = new MySqlCommand(sql, connect);
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{//Read()方法会返回当前条是否有数据,没有数据就返回false
//Console.WriteLine(reader[0] + " " + reader[1]+ " " + reader[2]+ " " + reader[3]);
Console.WriteLine(reader.GetInt32(“goodsid”)+reader.GetString(“name”)+reader.GetString(“goodstype”)+reader.GetInt32(“hp”));//推荐此方法进行输出
}
connect.Close();//关闭链接
Console.ReadKey();//让程序暂停一下
3、只查询某几项的所有数据
string connectStr = “server=127.0.0.1;port=3306;database=mygamedb;user=root;password=root”;
MySqlConnection connect = new MySqlConnection(connectStr);//并没有跟数据库建立链接
connect.Open();//跟数据库建立链接
Console.WriteLine(“数据库链接成功!”);
string sql = “select name,goodstype from goods”;//读取name项和goodstype项的数据
MySqlCommand cmd = new MySqlCommand(sql, connect);
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
//Console.WriteLine(reader[0] + " " + reader[1]);
Console.WriteLine(reader.GetInt32(“goodsid”)+reader.GetString(“name”)+reader.GetString(“goodstype”)+reader.GetInt32(“hp”));//推荐此方法进行输出
}
connect.Close();//关闭链接
Console.ReadKey();//让程序暂停一下
4、插入一行数据
string connectStr = “server=127.0.0.1;port=3306;database=mygamedb;user=root;password=root”;
MySqlConnection connect = new MySqlConnection(connectStr);//并没有跟数据库建立链接
connect.Open();//跟数据库建立链接
Console.WriteLine(“数据库链接成功!”);
string sql = “insert into users(username,password,registertime)
values(‘hhhH’,‘rrrr’,’”+DateTime.Now+"’)";
MySqlCommand cmd = new MySqlCommand(sql, connect);
int result = cmd.ExecuteNonQuery();//返回值是数据库中受影响的数据行数
Console.WriteLine(result);
connect.Close();//关闭链接
5、修改数据
string connectStr = “server=127.0.0.1;port=3306;database=mygamedb;user=root;password=root”;
MySqlConnection connect = new MySqlConnection(connectStr);//并没有跟数据库建立链接
connect.Open();//跟数据库建立链接
Console.WriteLine(“数据库链接成功!”);
string sql = “update users set username=‘lllllll’ where id=‘2’”;
MySqlCommand cmd = new MySqlCommand(sql, connect);
int result = cmd.ExecuteNonQuery();//返回值是数据库中受影响的数据行数
Console.WriteLine(result);
connect.Close();//关闭链接
6、删除数据
string connectStr = “server=127.0.0.1;port=3306;database=mygamedb;user=root;password=root”;
MySqlConnection connect = new MySqlConnection(connectStr);//并没有跟数据库建立链接
connect.Open();//跟数据库建立链接
Console.WriteLine(“数据库链接成功!”);
string sql = “delete from users where id=‘1347’”;
MySqlCommand cmd = new MySqlCommand(sql, connect);
int result = cmd.ExecuteNonQuery();//返回值是数据库中受影响的数据行数
Console.WriteLine(result);
connect.Close();//关闭链接
7、在查询的时候添加参数
方法一:
static bool isHaveUser(string username,string password)
{
string connectStr = “server=127.0.0.1;port=3306;database=mygamedb;user=root;password=root”;
MySqlConnection connect = new MySqlConnection(connectStr);//并没有跟数据库建立链接
connect.Open();//跟数据库建立链接
Console.WriteLine(“数据库链接成功!”);
string sql = “select * from users where username=’”+username+"‘and password=’"+password+"’";
MySqlCommand cmd = new MySqlCommand(sql, connect);
MySqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
connect.Close();//关闭链接
return true;
}
connect.Close();//关闭链接
return false;
}
方法二:
static bool isHaveUser(string username,string password)
{
string connectStr = “server=127.0.0.1;port=3306;database=mygamedb;user=root;password=root”;
MySqlConnection connect = new MySqlConnection(connectStr);//并没有跟数据库建立链接
connect.Open();//跟数据库建立链接
Console.WriteLine(“数据库链接成功!”);
string sql = “select * from users where username = @username and password = @password”;
MySqlCommand cmd = new MySqlCommand(sql, connect);
cmd.Parameters.AddWithValue(“username”, username);
cmd.Parameters.AddWithValue(“password”, password);
MySqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
connect.Close();//关闭链接
return true;
}
connect.Close();//关闭链接
return false;
}
SQL语法
1、select count(column_name) 参数是某一列的列名
返回指定列的值的数目(这一列有多少行)
select count(*)
返回这个表有几行数据
string connectStr = “server=127.0.0.1;port=3306;database=mygamedb;user=root;password=root”;
MySqlConnection connect = new MySqlConnection(connectStr);//并没有跟数据库建立链接
connect.Open();//跟数据库建立链接
Console.WriteLine(“数据库链接成功!”);
string sql = “select count(*) from users”;
MySqlCommand cmd = new MySqlCommand(sql, connect);
MySqlDataReader reader = cmd.ExecuteReader();
reader.Read();
int count = Convert.ToInt32(reader[0].ToString());
Console.WriteLine(count);
connect.Close();//关闭链接
使用了ExecuteScalar()方法
string connectStr = “server=127.0.0.1;port=3306;database=mygamedb;user=root;password=root”;
MySqlConnection connect = new MySqlConnection(connectStr);//并没有跟数据库建立链接
connect.Open();//跟数据库建立链接
Console.WriteLine(“数据库链接成功!”);
string sql = “select count(*) from users”;
MySqlCommand cmd = new MySqlCommand(sql, connect);
object o = cmd.ExecuteScalar();//只返回一个数值的时候使用该方法
int count = Convert.ToInt32(o.ToString());
Console.WriteLine(count);
connect.Close();//关闭链接
2、select avg(column_name)
返回指定列的平均数(一般是取数字类型的列,如果是字符串的不会报错)
3、select first(column_name)
返回指定列的第一行数据
4、select last(column_name)
返回指定列的最后一行数据
5、select max(column_name)
返回指定列的最大数
6、select min(column_name)
返回指定列的最小数
7、select sum(column_name)
返回指定列的和