最近发现了一个比较轻巧的可以作为Unity服务端开发的工具,WampServer64+Navicat for MySQL组合,比较小巧,其中WampServer是结合了Apache+PHP+MySQL等网页开发主流的合集,主要是能够减少繁杂的环境配置时间,对于客户端开发来说,无疑是神器,Navicat for MySQL是中文破解版,比较好使,下面贴出下载地址和使用方法
中文版下载: WampServer64
链接:Navicat for MySQL11
提取码:p7ct
Navicat for MySQL11是专门为MySQL数据库打造的可视化数据库界面,不用去命令行中去增删改查数据库,还是挺方便的,安装过程很简单,保证默认即可,下面演示下基本的使用方法。
新建连接,我这里没有设置密码,保持默认就好
下面建立一个简单的数据库,格式为UTF-8,进行测试
一般来说表都只是需要有一个主键,这里设置ID为主键,其中类型是int整型,长度是11位,小数点0表示为没有小数,且不能为null,有个主键符号,后续数据库进行增删改查的时候都是根据id的主键进行索引的,为了ID不重复,我这里勾选了自动递增,当我们往数据库插入新数据的时候,ID会自增保持唯一性
通过添加栏位,新增了varchar类型的name,和float类型的exp,其中varchar类型就是C#中的string类型
Navicat界面上的操作很简单,可以通过直接操作增删改查,不过我们一般来说不会直接在图形界面去操作表,更多的是通过代码去实现增删改查,接下来在C#中实现与MySQL的增删改查,实现与MySQL的交互需要引入一个sql的dll文件,链接贴在这里了
链接: MySql.Data.dll 提取码: b9hg
创建一个C#的控制台工程来进行演示,先引入sql的dll插件,这样才能实现功能
我们先通过MySqlConnection建立与数据库的连接,第一个server指的是当前的ip地址,由于我是本地数据库,因此是localhost也就是127.0.0.1,如果你数据库是在服务器上就需要填服务器的ip地址,第二是user id指的是建立链接的用户名默认是root,第三个指的是哪个数据库,第四个参数是设置数据类型,一般默认的都是utf-8
1.插入添加数据
添加或者插入数据到Study数据库的Player表中,往name和exp两个字段插入了test2,和100两个数据,如果只插入一个数据也可以这么写 “insert into player set name ‘test2’”,下面是演示插入多个字段的情况,其中通过LastInsertedId可以返回当前数据的id也就是主键
private static MySqlConnection mConnection = null;
static void Main(string[] args)
{
mConnection = new MySqlConnection("server=localhost;User Id = root;password=;Database =study;Charset=utf8");
mConnection.Open();
AddData();
mConnection.Close();
Console.ReadKey();
}
public static void AddData()
{
MySqlCommand mySqlCommand = new MySqlCommand("insert into player set name=@name,exp=@exp", mConnection);
cmd.Parameters.AddWithValue("exp", 100);
cmd.Parameters.AddWithValue("name", "测试");
mySqlCommand.ExecuteNonQuery();
int id = (int)mySqlCommand.LastInsertedId;
Console.WriteLine("Add Data ID:"+id);
}
运行控制台程序后,刷新数据库,就能看到我们所添加的数据还有自增的ID
2.查询数据
查询player表中所有的数据,其中通过"select * from 表名 where 字段名称 = '字段内容’可以根据条件进行查询数据
public static void QueryData()
{
MySqlCommand cmd = new MySqlCommand("select * from player",mConnection);
// MySqlCommand cmd = new MySqlCommand("select * from player where name = 'test3'", mConnection); 根据条件进行查询
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
int id = reader.GetInt32("id");
string name = reader.GetString("name");
float exp = reader.GetFloat("exp");
Console.WriteLine($"Query Data ID:{
id}--Name:{
name}--Exp:{
exp}");
}
}
3.更新数据
对Player表中ID为7的数据进行更新,其中update 表名 set 字段名 = @字段名称,这种写法可以防止在字符串中写太多容易写错,也可以防止sql注入,有点字符串格式化的写法
public static void ChangeData()
{
MySqlCommand cmd = new MySqlCommand("update player set name = @name,exp= @exp where id = @id", mConnection);
cmd.Parameters.AddWithValue("name", "sqlTest1");
cmd.Parameters.AddWithValue("exp", 120.23);
cmd.Parameters.AddWithValue("id", 7);
cmd.ExecuteNonQuery();
Console.WriteLine("Change Data Done ...");
}
4.删除数据
这里通过delete from 表名 where id = 7,删除id = 7的数据
public static void DeleteData()
{
MySqlCommand cmd = new MySqlCommand("delete from player where id = 7", mConnection);
cmd.ExecuteNonQuery();
Console.WriteLine("Delete Date Done ...");
}