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();
}

查詢結果

插入數據結果

插入數據成功之後,我們在用上面查詢的方法查看一下新插入的數據

在這裏只是進行了查詢、插入數據的操作,其它更新、刪除操作可類似進行處理,不在詳細講述;

本文爲原創作品,如有雷同,純屬巧合;

文中若有不當之處,歡迎指正,共同學習,謝謝;

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