詳解MySQL數(shù)據(jù)庫與ASP.NET怎樣強強聯(lián)手 |
發(fā)布時間: 2012/8/4 17:12:29 |
由于富有競爭力的價格和易于使用,MySQL在市場占有率方面逐步提升。開放源代碼社區(qū)為了擴展MySQL的使用范圍,開發(fā)出了.Net框架(.NET Framework)中可以使用的數(shù)據(jù)庫連接器。我們就來學習一下如何在.Net應(yīng)用程序中使用MySQL。 和.NET的數(shù)據(jù)整合 MySQL 社區(qū)已經(jīng)開發(fā)出了MySQL的數(shù)據(jù)接口,他提供了連接數(shù)據(jù)源和程序代碼的基本功能。在Windows平臺上,有如下的MySQL連接器: -
* MySQLDirect .NET Data Provider: 是一個由 Core Lab 開發(fā)的商業(yè)數(shù)據(jù)接口。他的價格由購買的許可證的類型決定,但是我們可以下載它的試用版。 如果你使用 Mono,那么在 Mono網(wǎng)站上可以找到PHP連接器的下載。如果你在Windows平臺上運行Mono的話,你下載的連接器包含了安裝程序。如果不是的話,那就要根據(jù)你的操作系統(tǒng)的種類去下載合適的連接器了。 使用MySQL數(shù)據(jù)接口 安裝好MySQL的數(shù)據(jù)接口后,你必須在你的代碼中引入它才能使用。你可以使用 MySql.Data.MySqlClient這個名空間來連接 MySQL 服務(wù)器。在C#中,可以使用using語句來引入MySQL數(shù)據(jù)接口: using MySql.Data.MySqlClient; 另外,你也可以在一個ASP.NET的網(wǎng)頁表單(Web Form)中通過使用導(dǎo)入(Import)指令來引入MySQL數(shù)據(jù)接口: 或者,你也可以在你的代碼里在使用這個名空間時,寫全一個類的完整路徑,但是這樣的話會比使用Import指令來導(dǎo)入輸入更多的字符,浪費更多的字節(jié)。指定了名空間后,我們就可以和MySQL數(shù)據(jù)庫進行數(shù)據(jù)交互了。MySql.Data.MySqlClient這個名空間提供了許多用于處理MySQL數(shù)據(jù)的類。下面是這些類的一個樣本: * MySqlConnection: 管理和 MySQL 服務(wù)器/數(shù)據(jù)庫的連接; * MySqlDataAdapter: 一套用于填充DataSet對象和更新MySQL數(shù)據(jù)庫的命令和連接的集合; * MySqlDataReader: 讓你能夠從一個MySQL數(shù)據(jù)庫讀取數(shù)據(jù)。它是一個單向的數(shù)據(jù)流; * MySqlCommand: 提供向數(shù)據(jù)庫服務(wù)器發(fā)送指令的功能; * MySqlException: 當發(fā)生問題時提供例外處理。 連接MySQL數(shù)據(jù)庫 使用MySQL數(shù)據(jù)庫的第一步是要通過MySQLConnection類和數(shù)據(jù)庫建立連接。通過一個連接字串,MySqlConnection 將會被實例化成一個示例。連接字符串將告訴代碼到哪里去找MySQL服務(wù)器以及其他一些選項。 一個連接字串告訴代碼使用指定的用戶名和密碼去連接一個名為MySQLTestServer的MySQL服務(wù)器,并進入techrepublic數(shù)據(jù)庫。我在我的測試機上設(shè)定了允許匿名登陸(這樣的設(shè)定有非常大的安全漏洞,所以不建議你在生產(chǎn)服務(wù)器上也這么做),所以在范例中將會使用如下的連接字串: "server=localhost; database=sitepoint;" 指定了連接字串后,MySqlConnection對象的Open方法就被調(diào)用并打開連接。連接建立后,你就可以給MySQL數(shù)據(jù)庫發(fā)送命令或從數(shù)據(jù)庫獲得數(shù)據(jù)了。 ASP.NET和MySQL的組合 讓我們更深入的討論一下結(jié)合MySqlConnection類和其他的類來生成一個MySQL服務(wù)器上的數(shù)據(jù)庫列表。表 B列出了一個使用C#寫的ASP.NET的網(wǎng)頁表單。它建立了一個連接,接著給服務(wù)器下了一個指令(SHOW DATABASES),然后通過MySqlReader對象把結(jié)果顯示出來。 用 MySqlCommand 對象向MySQL服務(wù)器發(fā)送 SHOW DATABASES 命令和直接在 MySQL 管理工具中輸入這個命令得結(jié)果是一樣的。唯一的區(qū)別是,我們在代碼中必須使用另一個對象來獲取結(jié)果集。MySqlDataReader 對象在獲取結(jié)果時被實例化(通過 MySqlCommand 類的 ExecuteReader 方法)。MySqlDataReader 對象的 GetString 方法被用于通過ASP.NET的標簽控制來顯示結(jié)果集中的數(shù)據(jù)。GetString 方法的指針0指定了顯示結(jié)果集的當前行(在while循環(huán)中)的第一列數(shù)據(jù)。 Mono提示 如果你使用開放源代碼的Mono開發(fā)平臺,例子中的代碼只需要做小小的改動就能正常的運行。MySQL的數(shù)據(jù)接口在 ByteFX.Data.MySqlClient 這個空間名里,而不是Windows上的MySql.Data.MySqlClient空間名。事實上 MySQL 的數(shù)據(jù)接口原來是由 ByteFX公司開發(fā)的,但是后被MySQL公司收購。所以如果你使用Mono的話,你必須這樣聲明空間名: using ByteFX.Data.MySqlClient; MySQL 和 .NET 的組合提供了一個強大的開發(fā)平臺。MySQL在開源社區(qū)得到了強大的技術(shù)支持,.NET也通過 Mono 而被開放源代碼社區(qū)所接受。這樣的組合提供了一個在Windows,及其他語言如UNIX或Linux,環(huán)境下高度靈活的開發(fā)平臺。 本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |