C#串連操作 MySQL 資料庫執行個體(使用官方驅動)

來源:互聯網
上載者:User

標籤:串連   ima   標準   理解   variant   nsa   ada   oca   ndt   

MySQL 以其免費和足夠的效能受到很大的青睞,當然對於國內小公司,甚至是大公司如果對著作權看得薄,敢冒險的話,隨便裝個 SqlServer、DB2、Oracle 都行。對於 SqlServer 資料庫,因其與 MS 是一家,自然在 .net 類庫中有內建支援,假如 MySQL 就得找第三方的驅動了 — .net 中多講 Provider。在這裡我也是作為一個預研專題,記錄下 C# 串連 MySQL 的兩種方法,分別使用 MySQL 官方的和 SourceForge 上一個開源的 MySQL 驅動。至於 ODBC 的辦法,就不提了,覺得意義不大,同樣要安裝個 MySQL ODBC 驅動,而且 ODBC 又如此之笨拙。

使用 MySQL 官方區動串連操作 MySQL 資料庫

下載驅動,可在

下載,目前的版本是 6.3。你可以選擇的平台既可以是 Microsoft Windows,也可以用 .Net & Mono 的,區別是 Microsoft Windows 的是一個MSI 檔案,後者是非安裝的壓縮包。但是那個 MSI 檔案在我的 64 位元 XP 下安裝不成功,所以用了後者。

這個 connector net 不光是個 MySQL 驅動,還提供了像 Entity Frameword、Asp.Net Web Providers、Compact Framework、VS 2008 整合的支援,還配置 CSharp 和 VB 的例子。詳細的配置、使用文檔請參考安裝目錄中的 MySql.Data.chm 檔案。

現在從最簡單的例子開始,驅動安裝完,或壓縮包解開後,甭裡安裝目錄裡的 mysql.data.cf.dll、mysql.data.entiry.dll、mysql.visualstudio.dll 和 mysql.web.dll,我們暫時在項目中引入 mysql.data.dll,用 using MySql.Data.MySqlClient; 引入命名空間。然後簡單的代碼如下:


代碼如下:


//連接字串

string connStr = “Server=localhost;Database=unmicc;Uid=unmicc;Pwd=xxxxxx;CharSet=utf8;”;

MySqlConnection con = new MySqlConnection(connStr);

con.Open();//開啟串連

MySqlCommand cmd = new MySqlCommand(“select now()”,con);

object time = cmd.ExecuteScalar(); //或是 cmd.ExecuteReader();cmd.ExecuteNonQuery();

MessageBox.Show(time.ToString());

//或 Console.WriteLine(time.ToString());

con.Close();

上面的連接字串應該好理解,另外還有更多的配置參數,例如連接埠號碼、串連池相關的配置等,具體請參考手冊中的 Connection Options。其他的操作就是標準的 ADO.NET 的了,再就是可以處理各步驟的異常,catch MySql.Data.MySqlClient.MySqlException 這個類型的異常。其他的用於填充資料的 MySqlDataAdapter 和  MySqlDataReader 也是備好了的。

我想,在做正式的應用時,為防止 SQL 注入時關於參數化查詢肯定會被提出來的,那就來看看這個 MySQL 官方驅動如何處理參數化查詢的。它所用的方式和 SqlServer Provider 是一樣的,用 @author 這樣的形式來標識參數,並且同樣支援 AddWithValue(string name, object value) 的方式。請看代碼:


代碼如下:


string sql = “update wp_posts set [email protected] and [email protected] where [email protected]”;

//可以用 ? 號的形式,如,但 ? 號的形式不推薦使用

//string sql = “update wp_posts set post_author=?author and post_status=?status where id=?id”;

MySqlCommand cmd = con.CreateCommand();

cmd.CommandText = sql;

cmd.Parameters.AddWithValue(“@author”, 1);

//cmd.Parameters.AddWithValue(“?author”, 1);

cmd.Parameters.AddWithValue(“@status”, “publish”);

//cmd.Parameters.AddWithValue(“?status”, “publish”);

cmd.Parameters.AddWithValue(“@id”, 23);

//cmd.Parameters.AddWithValue(“?id”,23);

cmd.ExecuteNonQuery();

注意到,同時還能用 ?author 的形式來標識參數,不過現在不推薦這麼用了,也許是為了統一成 @author 的格式吧。不知道什麼時候能像 JDBC 一樣,直接用 ? 來作為預留位置。

對於 InnoDB 儲存引擎的 MySQL 是支援事物的,這個官方的的驅動支援事物的代碼如下:



MySqlTransaction trans = con.BeginTransaction(); //啟用事物

trans.Commit(); //正常時提交

trans.Rollback(); //異常時復原



下一篇將介紹如何使用 SourceForge 上的開源 MySQL .Net 驅動怎麼去操作 MySQL 資料庫的。

除聲明外, 跑步客文章均為原創,轉載請以連結形式標明本文地址
  C#串連操作 MySQL 資料庫執行個體(使用官方驅動)

本文地址:  http://www.paobuke.com/develop/c-develop/pbk23135.html






相關內容說說C#的async和await的具體用法C# 中string.split用法詳解90分鐘實現一門程式設計語言(極簡解譯器教程)C#讀寫config設定檔的方法
C#運算子多載用法執行個體分析C#中調用SAPI實現語音合成的2種方法C#介面(Interface)用法分析C#中winform控制textbox輸入只能為數位方法

C#串連操作 MySQL 資料庫執行個體(使用官方驅動)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.