C#使用ODBCl連線MySql詳細教程
阿新 • • 發佈:2019-02-12
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using MySql.Data; using MySql.Data.MySqlClient; namespace MySQLTest { class Test { private MySqlConnection mysqlcon; Test() { const string constr = "server=localhost;User Id=waponx;password=learning;Database=Education"; mysqlcon = new MySqlConnection(constr); // 開啟mysql連線,在使用之前必須要開啟,否則會丟擲異常 // 在不使用mysql的時候記得關閉 mysqlcon.Open(); // 生成一個mysql語句,第一個引數為你的語句,第二個引數為mysql連線 // 第二個引數可省,預設值為null MySqlCommand mysqlcmd_NonQuery = new MySqlCommand("insert into myaccount(name, password, identity) values(\'haha\', \'123\', \'Student\')", mysqlcon); // 執行語句 mysqlcmd_NonQuery.ExecuteNonQuery(); MySqlCommand mysqlcmd_Query = new MySqlCommand("select * from myaccount", mysqlcon); // 如果執行mysql語句會返回資訊,就可以通過MySqlDataReader型別來讀取這些資訊。 // 比如select語句 // ExecuteReader函式返回一個MySqlDataReader物件 MySqlDataReader dataReader = mysqlcmd_Query.ExecuteReader(); // FieldCount屬性,查詢結果的欄位數 int count = dataReader.FieldCount; // 讀取這個結果集合 // 想要訪問查詢結果,先要執行Read函式 dataReader.Read(); string[] title = new string[count]; for (int i = 0; i < count; ++i) { // 獲取第i列的標題,通過i指定第幾列 title[i] = dataReader.GetName(i); } // Read函式每次從執行的結果中讀取一行 // 有資料可以讀就返回true while (dataReader.Read()) { for (int i = 0; i < dataReader.FieldCount; ++i) { // IsDBNull函式可以判斷讀取到的資料的第i列為不為空 // 如果為空就返回true if (!dataReader.IsDBNull(i)) { Console.WriteLine("查詢結果的當前當的第{0}列不為空", i); // GetString函式可以以字串的形式返回讀取到的這一行的第i列的資料 // 類似的還有 // dataReader.GetChar(i); /// dataReader.GetInt32(i);等等 Console.WriteLine("查詢結果的當前當的第{0}列的內容為:", i, dataReader.GetString(i)); } else { Console.WriteLine("查詢結果的當前當的第{0}列為空", i); } } } // IsClosed可以用來判斷MySqlDataReader是否已經被關閉了 // 如果沒有關閉要記得關閉,否則不能對這個mysql連線再執行ExecuteReader if (!dataReader.IsClosed) { // 如果在沒有關閉這個MySqlDataReader情況下使用了ExecuteReader和Read,就會丟擲異常 dataReader.Close(); } // 關閉mysql連線 CloseMySqlConnect(); } public void CloseMySqlConnect() { // 關閉mysql mysqlcon.Close(); } } }