利用NHibernate和MySQL交互

连接服务器步骤
客户端连接服务器:
当我们在客户端调用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)
返回指定列的和

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小姑娘不爱写代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值