程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 如何實現用ODBC連接MySQL和ASP.NET

如何實現用ODBC連接MySQL和ASP.NET

編輯:.NET實例教程

被認為是“世界上最流行的開放源代碼數據庫”的MySQL從最初一個毫不起眼的低成本數據庫服務器成長為驅動龐大Web網站和重要商業系統的服務器經歷了一個漫長的歷程。但是,如果你是一位ASP.Net的開發人員,那麼你總會碰到一個不如意的地方:MySQL原先是為UNIX平台上的應用程序設計的,所以對Windows的支持處於次要地位。

但是現在,Windows版本的MySQL已經具備了與UNIX版本同樣的特性和穩定性,而且它被認為是用於Windows開發的可行的數據庫服務器。現在讓我們來看看你可以如何使用ODBC在.Net框架內連接MySQL數據庫。

安裝

下載和安裝Windows版的MySQL。安裝很簡單——只用按照提示你就能夠立即安裝好並開始運行了。如果碰到了問題,可以去MySQL的論壇看看,尋求幫助和解決方法。

要把ASP.NET和MySQL連接起來,你需要使用ODBC.NET。一般來說,ODBC.NET的DataProvider是標准的.Net框架(1.1及以上的版本)的一部分,所以會和後者一起自動安裝好。

一旦確認ODBC.Net安裝完畢,你就需要下載用於MySQL的ODBC驅動程序。再強調一遍,MySQL的開發人員都很樂意提供幫助——他們都在自己的Web網站上提供了這些驅動程序。在下載文件的時候你可以看看FAQ文檔,它會列出在往系統裡安裝MySQL ODBC驅動程序期間可能碰到的所有的問題。

都做好了?現在就讓我們從一些代碼開始吧。

用ASP.Net連接MySQL

我最喜歡做的一件事情是閱讀,而且當我沒有編寫像本文一樣的教學文章時,我會找一個安靜的角落補全參考書目表。不幸的是,我不是一個組織性很強的人,所以這常常搞得一團糟。

那這又與我們今天要談的話題有什麼關系呢?嗯,這是我第一個例子的開場白,這個例子就是創建一個像列表A裡的書籍的數據庫。

要建立這個表格,就要使用下面的SQL查詢:

 
  CREATE TABLE `books` (
  `id` int(5) NOT NULL auto_increment,
  `title` varchar(255) NOT NULL default '',
  `authors` varchar(255) NOT NULL default '',
  `year_of_publication` year(4) NOT NULL default '0000',
  `date_added` date NOT NULL default '0000-00-00',
  PRIMARY KEY (`id`)
  ) TYPE=MyISAM;
 
  
而要執行這個查詢,就要使用MySQL安裝目錄下的“bin”文件夾的命令行客戶端軟件“MySQL.exe”。下面就是具體命令:

  
  c:\mysql\bin>MySQL -u guest -p test
  Enter passWord: ******
  Welcome to the MySQL monitor. Commands end with ; or \g.
  Your MySQL connection id is 13 to server version: 4.0.12-nt
  
  Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
  
  MySQL> CREATE TABLE `books` (
  ->  `id` int(5) NOT NULL auto_increment,
  ->  `title` varchar(255) NOT NULL default '',
  ->  `authors` varchar(255) NOT NULL default '',
  ->  `year_of_publication` year(4) NOT NULL default '0000',
  ->  `date_added` date NOT NULL default '0000-00-00',
  ->  PRIMARY KEY (`id`)
  -> ) TYPE=MyISAM;
  Query OK, 0 rows affected (0.02 sec)

  
一旦“書籍(books)”表格創建好了,就可以開始插入數據了。列表B裡列舉了一些項目。現在,用ASP.Net做同樣的事情——執行SELECT查詢(列表C)並在浏覽器裡顯示結果。如果一切都沒有問題——MySQL服務器在運行,MySQL ODBC驅動程序安裝正確,“書籍”表格含有數據——你就應該會看到像圖A裡的頁面。

圖A
現在讓我們來更加仔細地看看代碼列表。所有東西一開始都要調入所需要的.NET庫。由於我正在使用ODBC.Net連接MySQL服務器,所以需要調用System.Data.Odbc和System.Data程序集。一旦程序集調用完畢,就要定義連接字符串,這包括修改服務器(Server)、數據庫(Database)、uid和pwd變量以體現本地服務器的設置。 在創建了OdbcConnection()和OdbcCommand()對象之後,初始化本地的OdbcDataReader()對象,從“書籍”表格取回數據。這個對象提供了一條ExecuteReader()命令來執行SQL查詢。剩下的就是例行公事了:將OdbcDataReader()指定為dbgooks DataGrid的數據源,並調用DataGrid()對象的DataBind()方法將兩者綁定起來。 當然,你可以對數據庫做更多的事情——向表格裡插入(INSERT)數據、使用更新(UPDATE)修改它們、用刪除(DELETE)命令獲得記錄的網格,或者就根據WHERE語句裡面的條件選擇子集。 異常的處理 現在讓我們來看一些異常的處理(列表D)方法,以對付程序員經常碰到的一些無法預見的狀況。正如你會注意到的,列表D使用了嵌套try-catch結構來提供多級別的錯誤處理。下面列出來的一段代碼應該有助於你更好地理解它:
  
  <% try {try { } catch (OdbcException e)
  {} catch (Exception e) { } finally { }           
   } catch (OdbcException e)
  { } catch (Exception e) {}%>
  現在首先讓我們看看裡層的“try-catch”結構。這個結構用來處理創建OdbcCommand()或者OdbcDataReader()對象的實例時可能發生的錯誤。如果數據庫裡不存在“書籍”表格,就有可能發生這樣的錯誤。如果發生了這樣的錯誤,“catch”部分就會發出一個新的Exception()。裡層的“try-catch”結構的“finally”塊然後就會在腳本進一步執行之前關閉OdbcConnection()對象。 動作然後就轉到外層的“try-catch”結構。外層的結構能夠處理兩種類型的異常——OdbcException()或者是一般的Exception()。前者在由於某種原因無法打開到數據庫服務器的連接或者腳本無法將OdbcConnection()對象實例化的時候產生,而後者用來處理內層“try-catch”結構所產生的異常。無論發生兩種情況中的哪一種,都會有一個ASP.Net標簽服務器控件向用戶顯示相應的錯誤消息。 圖B向你顯示,當腳本嘗試連接到一個不存在的數據庫服務器時所發生的事情(這個由外層的“try-catch”結構來處理)。
 

圖B

圖C向你顯示的錯誤信息會在腳本嘗試訪問一個不存在的數據庫表格時出現(要注意,內層“try-catch”結構產生的異常會由外層結構來處理):

 

圖C
 

以上就是關於如何使用MySQL和ASP.Net的DataGrid服務器控件的介紹。關於你可以如何使用這兩種技術還有更多的內容可談;所以我希望本文和上面提供的其他參考資源能夠幫助你對此有個初步的了解。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved