熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> MySQL >> 正文

用ODBC連接MySQL和ASP.NET

2013-11-23 20:59:04  來源: MySQL 

  被認為是世界上最流行的開放源代碼數據庫的MySQL從最初一個毫不起眼的低成本數據庫服務器成長為驅動龐大Web網站和重要商業系統的服務器經歷了一個漫長的歷程但是如果你是一位ASPNET的開發人員那麼你總會碰到一個不如意的地方MySQL原先是為UNIX平台上的應用程序設計的所以對Windows的支持處於次要地位
  
  但是現在Windows版本的MySQL已經具備了與UNIX版本同樣的特性和穩定性而且它被認為是用於Windows開發的可行的數據庫服務器現在讓我們來看看你可以如何使用ODBC在NET框架內連接MySQL數據庫
  
  安裝
  下載和安裝Windows版的MySQL安裝很簡單——只用按照提示你就能夠立即安裝好並開始運行了如果碰到了問題可以去MySQL的論壇看看尋求幫助和解決方法
  
  要把ASPNET和MySQL連接起來你需要使用ODBCNET一般來說ODBCNET的DataProvider是標准的NET框架(及以上的版本)的一部分所以會和後者一起自動安裝好
  
  一旦確認ODBCNET安裝完畢你就需要下載用於MySQL的ODBC驅動程序再強調一遍MySQL的開發人員都很樂意提供幫助——他們都在自己的Web網站上提供了這些驅動程序在下載文件的時候你可以看看FAQ文檔它會列出在往系統裡安裝MySQL ODBC驅動程序期間可能碰到的所有的問題
  
  都做好了?現在就讓我們從一些代碼開始吧
  
  用ASPNET連接MySQL
  我最喜歡做的一件事情是閱讀而且當我沒有編寫像本文一樣的教學文章時我會找一個安靜的角落補全參考書目表不幸的是我不是一個組織性很強的人所以這常常搞得一團糟
  
  那這又與我們今天要談的話題有什麼關系呢?嗯這是我第一個例子的開場白這個例子就是創建一個像列表A裡的書籍的數據庫
  
  要建立這個表格就要使用下面的SQL查詢
  
  CREATE TABLE `books` (
  `id` int() NOT NULL auto_increment
  `title` varchar() NOT NULL default
  `authors` varchar() NOT NULL default
  `year_of_publication` year() NOT NULL default
  `date_added` date NOT NULL default
  PRIMARY KEY (`id`)
  ) TYPE=MyISAM;
  而要執行這個查詢就要使用MySQL安裝目錄下的bin文件夾的命令行客戶端軟件mysqlexe下面就是具體命令
  
  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 to server version: nt
  
  Type help; or \h for help Type \c to clear the buffer
  
  mysql> CREATE TABLE `books` (
  >  `id` int() NOT NULL auto_increment
  >  `title` varchar() NOT NULL default
  >  `authors` varchar() NOT NULL default
  >  `year_of_publication` year() NOT NULL default
  >  `date_added` date NOT NULL default
  >  PRIMARY KEY (`id`)
  > ) TYPE=MyISAM;
  Query OK rows affected ( sec)
  
  一旦書籍(books)表格創建好了就可以開始插入數據了列表B裡列舉了一些項目現在用ASPNET做同樣的事情——執行SELECT查詢(列表C)並在浏覽器裡顯示結果如果一切都沒有問題——MySQL服務器在運行MySQL ODBC驅動程序安裝正確書籍表格含有數據——你就應該會看到像圖A裡的頁面
   educitycn/img_///gif>
  現在讓我們來更加仔細地看看代碼列表所有東西一開始都要調入所需要的NET庫由於我正在使用ODBCNET連接MySQL服務器所以需要調用SystemDataOdbc和SystemData程序集一旦程序集調用完畢就要定義連接字符串這包括修改服務器(Server)數據庫(Database)uid和pwd變量以體現本地服務器的設置
  
  在創建了OdbcConnection()和OdbcCommand()對象之後初始化本地的OdbcDataReader()對象書籍表格取回數據這個對象提供了一條ExecuteReader()命令來執行SQL查詢剩下的就是例行公事了將OdbcDataReader()指定為dbgooks DataGrid的數據源並調用DataGrid()對象的DataBind()方法將兩者綁定起來
  
  當然你可以對數據庫做更多的事情——向表格裡插入(INSERT)數據使用更新(UPDATE)修改它們用刪除(DELETE)命令獲得記錄的網格或者就根據WHERE語句裡面的條件選擇子集
  
  異常的處理
  現在讓我們來看一些異常的處理(列表D)方法以對付程序員經常碰到的一些無法預見的狀況正如你會注意到的列表D使用了嵌套trycatch結構來提供多級別的錯誤處理下面列出來的一段代碼應該有助於你更好地理解它
  
  <% try {try { } catch (OdbcException e) {} catch (Exception e) { } finally { }            } catch (OdbcException e) { } catch (Exception e) {
  }%>
  現在首先讓我們看看裡層的trycatch結構這個結構用來處理創建OdbcCommand()或者OdbcDataReader()對象的實例時可能發生的錯誤如果數據庫裡不存在書籍表格就有可能發生這樣的錯誤如果發生了這樣的錯誤catch部分就會發出一個新的Exception()裡層的trycatch結構的finally塊然後就會在腳本進一步執行之前關閉OdbcConnection()對象
  
  動作然後就轉到外層的trycatch結構外層的結構能夠處理兩種類型的異常——OdbcException()或者是一般的Exception()前者在由於某種原因無法打開到數據庫服務器的連接或者腳本無法將OdbcConnection()對象實例化的時候產生而後者用來處理內層trycatch結構所產生的異常無論發生兩種情況中的哪一種都會有一個ASPNET標簽服務器控件向用戶顯示相應的錯誤消息
  
  圖B向你顯示當腳本嘗試連接到一個不存在的數據庫服務器時所發生的事情(這個由外層的trycatch結構來處理)
   educitycn/img_///gif>
  圖C向你顯示的錯誤信息會在腳本嘗試訪問一個不存在的數據庫表格時出現(要注意內層trycatch結構產生的異常會由外層結構來處理)
  educitycn/img_///gif>
  以上就是關於如何使用MySQL和ASPNET的DataGrid服務器控件的介紹關於你可以如何使用這兩種技術還有更多的內容可談所以我希望本文和上面提供的其他參考資源能夠幫助你對此有個初步的了解
From:http://tw.wingwit.com/Article/program/MySQL/201311/29390.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.