開放源代碼社區為了擴展MySQL的使用范圍開發出了Net框架(NET Framework)中可以使用的數據庫連接器我們就來學習一下如何在Net應用程序中使用MySQL
由於富有競爭力的價格和易於使用MySQL在市場占有率方面逐步提升開放源代碼社區為了擴展MySQL的使用范圍開發出了Net框架(NET Framework)中可以使用的數據庫連接器我們就來學習一下如何在Net應用程序中使用MySQL
MySQL漸漸的成為了在選擇數據庫平台時一個切實可行的數據庫方案能夠證明這一點的就是許多公司都選擇mySQL作為他們的數據庫平台例如 Google美聯社(The Associated Press) 以及美國國家航空宇航局( NASA)雖然對於一個開放源代碼來說低廉的價格常常被當作主要優點來說服客戶但是對於象Google那樣的大規模的組織來說他們不會放心的把非常有用的信息存放在一個只有價格優勢的數據庫產品中MySQL真正的實力遠遠的超過了他的價格優勢他提供了豐富的來自開放源代碼社區和商業化的附加工具
和NET的數據整合
MySQL 社區已經開發出了MySQL的數據接口他提供了連接數據源和程序代碼的基本功能在Windows平台上有如下的MySQL連接器
* MySQL Connector/Net (之前被稱為ByteFXData):是一個為MySQL設計的開放源代碼NET數據接口它是完全用C#來開發的我們可以在在 網站上找到它(注意:在本文的例子中我們都會使用MySQL Connector/Net 這個數據接口來連接數據庫利用Windows安裝程序即可輕易安裝它它的代碼實例和文檔也包含其中)
* MySQLDirect NET Data Provider 是一個由 Core Lab 開發的商業數據接口他的價格由購買的許可證的類型決定但是我們可以下載它的試用版
如果你使用 Mono那麼在 Mono網站上可以找到PHP連接器的下載如果你在Windows平台上運行Mono的話你下載的連接器包含了安裝程序如果不是的話那就要根據你的操作系統的種類去下載合適的連接器了
使用MySQL數據接口
安裝好MySQL的數據接口後你必須在你的代碼中引入它才能使用你可以使用 MySqlDataMySqlClient這個名空間來連接 MySQL 服務器在C#中可以使用using語句來引入MySQL數據接口
using MySqlDataMySqlClient;
另外你也可以在一個ASPNET的網頁表單(Web Form)中通過使用導入(Import)指令來引入MySQL數據接口或者你也可以在你的代碼裡在使用這個名空間時寫全一個類的完整路徑但是這樣的話會比使用Import指令來導入輸入更多的字符浪費更多的字節指定了名空間後我們就可以和MySQL數據庫進行數據交互了 MySqlDataMySqlClient這個名空間提供了許多用於處理MySQL數據的類下面是這些類的一個樣本
* MySqlConnection管理和 MySQL 服務器/數據庫的連接
* MySqlDataAdapter一套用於填充DataSet對象和更新MySQL數據庫的命令和連接的集合
* MySqlDataReader讓你能夠從一個 MySQL 數據庫讀取數據它是一個單向的數據流
* MySqlCommand 提供向數據庫服務器發送指令的功能
* MySqlException當發生問題時提供例外處理
我們會使用其中的一些類去和我們的范例數據庫進行數據交互
連接 MySQL 數據庫
使用MySQL數據庫的第一步是要通過MySQLConnection類和數據庫建立連接通過一個連接字串MySqlConnection 將會被實例化成一個示例連接字符串將告訴代碼到哪裡去找MySQL服務器以及其他一些選項
一個連接字串告訴代碼使用指定的用戶名和密碼去連接一個名為MySQLTestServer的MySQL服務器並進入 techrepublic數據庫我在我的測試機上設定了允許匿名登陸(這樣的設定有非常大的安全漏洞所以不建議你在生產服務器上也這麼做)所以在范例中將會使用如下的連接字串
server=localhost; database=sitepoint;
指定了連接字串後 MySqlConnection 對象的Open方法就被調用並打開連接連接建立後你就可以給MySQL數據庫發送命令或從數據庫獲得數據了
ASPNET和MySQL的組合
讓我們更深入的討論一下結合MySqlConnection類和其他的類來生成一個MySQL服務器上的數據庫列表表 B列出了一個使用C#寫的ASPNET的網頁表單它建立了一個連接接著給服務器下了一個指令(SHOW DATABASES)然後通過MySqlReader對象把結果顯示出來
用 MySqlCommand 對象向MySQL服務器發送 SHOW DATABASES 命令和直接在 MySQL 管理工具中輸入這個命令得結果是一樣的唯一的區別是我們在代碼中必須使用另一個對象來獲取結果集MySqlDataReader 對象在獲取結果時被實例化(通過 MySqlCommand 類的 ExecuteReader 方法)
From:http://tw.wingwit.com/Article/program/ASP/201311/21824.html