MySQL是一個open source的關聯性資料庫管理系統
可能會有人有疑問說:「資料庫和機器人怎麼有會關聯呢?」
本魔在此告訴你!一定有關聯的!
在網路上的資料庫可以隨時供電腦做存取
這樣一來,我們就可以很方便的管理一些資料了
也有可能可以把動作資料建立在資料庫上供機器人使用(好像很久以前有人就有給過我這個建議了)
這樣除了較不用擔心資料會隨著機器人損壞
更增加了許多的擴充性
那麼本魔在此就不教學如何安裝MySQL了
各位自己上網Google應該很好找到
那麼就開始我們的教學!
首先各位需要安裝MySQL官方所提供的Connector
安裝好了之後就可以開啟我們的Visual Studio建一個C#的專案囉!
首先要加入參考 [Project] ->[Add Reference]->[瀏覽]
選擇安裝路徑下的MySql.Data.dll
路徑通常在C:\Program Files\MySQL\MySQL Connector Net 6.6.5\Assemblies\v2.0
加入參考了之後會看到方案總管內的Reference有加入了MySql.Data囉
接了我們就可以開始撰寫程式囉
以下給各位新增、刪除、修改、查詢的範例
其實相當簡單
基本上就是與MySQL一樣 丟一串指令給他 他會回傳一些資料給你
首先假設我們的資料表的內容是這樣子的而資料表名稱為member
那我們先來新增10筆會員資料
using System; using System.Collections.Generic; using System.Linq; using System.Text; using MySql.Data.MySqlClient; namespace MySQLtest { class Program { static void Main(string[] args) { string dbHost = "";//資料庫位址 string dbUser = "";//資料庫使用者帳號 string dbPass = "";//資料庫使用者密碼 string dbName = "";//資料庫名稱 string connStr = "server=" + dbHost + ";uid=" + dbUser + ";pwd=" + dbPass + ";database=" + dbName; MySqlConnection conn = new MySqlConnection(connStr); MySqlCommand command = conn.CreateCommand(); conn.Open(); String account; String password; int level; for(int i = 0; i < 10; i++){ account = "account" + i.ToString(); password = "password" + i.ToString(); level = i * 10; command.CommandText = "Insert into member(account,password,level) values('"+ account +"','"+ password +"',"+ level +")"; command.ExecuteNonQuery(); } Console.ReadLine(); conn.Close(); } } }
這樣執行後我們就可以看到資料表內增加了十筆資料囉
接著是刪除
假如我想刪除id為15的用戶
using System; using System.Collections.Generic; using System.Linq; using System.Text; using MySql.Data.MySqlClient; namespace MySQLtest { class Program { static void Main(string[] args) { string dbHost = "";//資料庫位址 string dbUser = "";//資料庫使用者帳號 string dbPass = "";//資料庫使用者密碼 string dbName = "";//資料庫名稱 string connStr = "server=" + dbHost + ";uid=" + dbUser + ";pwd=" + dbPass + ";database=" + dbName; MySqlConnection conn = new MySqlConnection(connStr); MySqlCommand command = conn.CreateCommand(); conn.Open(); command.CommandText = "Delete FROM member WHERE id=15"; int n = command.ExecuteNonQuery(); Console.WriteLine("共刪除 {0} 筆資料", n); Console.ReadLine(); conn.Close(); } } }
那麼執行後就可以發現id為15的資料不見囉
接著是修改
這裡把account6的password改為1234
using System; using System.Collections.Generic; using System.Linq; using System.Text; using MySql.Data.MySqlClient; namespace MySQLtest { class Program { static void Main(string[] args) { string dbHost = "";//資料庫位址 string dbUser = "";//資料庫使用者帳號 string dbPass = "";//資料庫使用者密碼 string dbName = "";//資料庫名稱 string connStr = "server=" + dbHost + ";uid=" + dbUser + ";pwd=" + dbPass + ";database=" + dbName; MySqlConnection conn = new MySqlConnection(connStr); MySqlCommand command = conn.CreateCommand(); conn.Open(); command.CommandText = "Update member SET password='1234' WHERE account='account6'"; command.ExecuteNonQuery(); Console.ReadLine(); conn.Close(); } } }
再來看看資料表 沒錯 正確的改過去了
最後就是查詢啦
那我們來查詢看看level小於50的所有用戶
然後顯示在電腦上吧
using System; using System.Collections.Generic; using System.Linq; using System.Text; using MySql.Data.MySqlClient; namespace MySQLtest { class Program { static void Main(string[] args) { string dbHost = "";//資料庫位址 string dbUser = "";//資料庫使用者帳號 string dbPass = "";//資料庫使用者密碼 string dbName = "";//資料庫名稱 string connStr = "server=" + dbHost + ";uid=" + dbUser + ";pwd=" + dbPass + ";database=" + dbName; MySqlConnection conn = new MySqlConnection(connStr); MySqlCommand command = conn.CreateCommand(); conn.Open(); String cmdText = "SELECT * FROM member WHERE level < 50"; MySqlCommand cmd = new MySqlCommand(cmdText, conn); MySqlDataReader reader = cmd.ExecuteReader(); //execure the reader while (reader.Read()) { for (int i = 0; i < 4; i++) { String s = reader.GetString(i); Console.Write(s + "\t"); } Console.Write("\n"); } Console.ReadLine(); conn.Close(); } } }
最後結果是
正確!
您好
回覆刪除我想要在C#以creat的方式建立表格該如何完成呢
抱歉這麼晚才看到你的問題,
刪除這裡我幫你找到網路上類似的問題:
http://stackoverflow.com/questions/15063580/how-to-write-mysql-create-table-query-in-c-sharp
其實這個Connector內部也只是將C#字串指令傳到database上執行,
所以MySQL的指令應當都可以用喔!
您好:
回覆刪除請教一下整體概念~
是指以c#刻劃 UI,並取代前端HTML+PYTHON,
在C#程式呼叫MYSQL API達到操控MYSQL DB
請問這個念想是正確的嗎? 非常感謝
這個Connector lib是直接接入MySQL來做操控的,
刪除所以和UI、前端沒有關係哦!
至於想要用這個功能做出什麼應用就要花點腦筋了!
當然您可以做一個仿造MySQL的控制介面作為應用,
不過官方都已經提供現成的介面使用了,就不推薦您花時間在這上面了XD