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();
}
}
}
最後結果是
正確!