C#中连接MySql数据库以及简单操作

在游戏开发中,基本上都会用到数据库,有机会学习了一下数据库方面的简单操作,虽然正式项目中不会像下面这么的使用,这也是自己的一点学习心得总结,仅供参考学习使用而已;

首先先创建一个表格,先把表格的字段属性贴出来,以方便后面理解(数据库安装、数据库新建、表格的创建这里不再讲述,有兴趣的话可以自行查看相关资料)

再接着创建MySqlMgr.cs类

使用MySql相关API,先要引入MySql.Data.dll(其它相关的程序集自行引入);

下载地址:MySql.data.dll

using MySql.Data.MySqlClient;
public class MySqlMgr {
    public string ConnectionString { get; private set;}
    private MySqlConnection myConnection;
    public MySqlMgr() {

    }

    /// <summary>
    /// 传入需要连接的数据库信息来创建连接
    /// </summary>
    /// <param name="connectionString">对应数据库的连接信息</param>
    public void CreateConnection(string connectionString) { 
        ConnectionString = connectionString;
        myConnection = new MySqlConnection(ConnectionString);
    }

    /// <summary>
    /// 输入查询语句进行数据查询,在控制台输出
    /// </summary>
    /// <param name="sql">sql 命令语句</param>
    public void SelectDataFromTable(string sql) {
        string sqlCommand = sql;
        MySqlCommand command = new MySqlCommand(sqlCommand, myConnection);
        //开启数据库连接
        myConnection.Open();

        //使用数据库查询使用 ExecuteReader() 方法
        MySqlDataReader reader = command.ExecuteReader();
        Console.WriteLine("Id\tName\tScore");
        while(reader.Read()) {
            Console.Write(reader.GetInt32(0) + "\t");
            //对数据库的某一字段是否为空进行判断
            if(reader.IsDBNull(1)) {
                Console.Write("Null\t");
            } else {
                Console.Write(reader.GetString("name") + "\t");
            }
            if(reader.IsDBNull(2)) {
                Console.Write("Null\n");
            } else {
                Console.Write(reader.GetInt32(2) + "\n");
            }
        }
        //使用完之后关闭数据库连接
        myConnection.Close();
    }

    /// <summary>
    /// 向数据库表中插入一条新的数据
    /// </summary>
    /// <param name="sql">mysql插入数据的命令语句</param>
    /// <param name="parameters">执行的语句中传入相关参数</param>
    public void InsertDataIntoTable(string sql, List<MySqlParameter> parameters) {
        string sqlCommand = sql;
        MySqlCommand command = new MySqlCommand(sql, myConnection);
        command.Parameters.AddRange(parameters.ToArray());
        myConnection.Open();
        // 对数据库的插入、更新、删除,使用 ExecuteNonQuery() 方法
        int rowsCount = command.ExecuteNonQuery();
        if(rowsCount == 1) {
            Console.WriteLine("Insert Into Success");
        } else {
            Console.WriteLine("Insert Into Faile");
        }
        myConnection.Close();
    }

    /// <summary>
    /// 类似于析构函数
    /// </summary>
    public void Dispose() {
        if(myConnection != null) {
            myConnection.Dispose();
        }
    }
}

这个就先简单写到这里,下面在Program.cs中进行使用和测试;

static void Main(string[] args) {
    //string connectString = "data source=localhost;database=数据库名称;user id=数据库用户名;password=数据库密码;pooling=false;charset=utf8;";
    string connectString = "data source=localhost;database=db_5;user id=wsh;password=wsh;pooling=false;charset=utf8;";
    MySqlMgr mySqlMgr = new MySqlMgr();
    mySqlMgr.CreateConnection(connectString);

    //查询
    mySqlMgr.SelectDataFromTable("select * from t_score");

    // 插入新数据(解开下面注释测试)
    //List<MySqlParameter> parameters = new List<MySqlParameter>();
    //parameters.Add(new MySqlParameter("@name", "xiaoming"));
    //parameters.Add(new MySqlParameter("@score", 1000));
    //mySqlMgr.InsertDataIntoTable("insert into t_score values(null, @name, @score)", parameters);

    mySqlMgr.Dispose();

    Console.ReadLine();
}

查询结果

插入数据结果

插入数据成功之后,我们在用上面查询的方法查看一下新插入的数据

在这里只是进行了查询、插入数据的操作,其它更新、删除操作可类似进行处理,不在详细讲述;

本文为原创作品,如有雷同,纯属巧合;

文中若有不当之处,欢迎指正,共同学习,谢谢;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章