被認為是
世界上最流行的開放源代碼數據庫
的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框架(
及以上的版本)的一部分
所以會和後者一起自動安裝好
一旦確認ODBC
NET安裝完畢
你就需要下載用於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
文件夾的命令行客戶端軟件
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
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裡列舉了一些項目
現在
用ASP
NET做同樣的事情——執行SELECT查詢(列表C)並在浏覽器裡顯示結果
如果一切都沒有問題——MySQL服務器在運行
MySQL ODBC驅動程序安裝正確
書籍
表格含有數據——你就應該會看到像圖A裡的頁面
educity
cn/img_
/
/
/
gif>
現在讓我們來更加仔細地看看代碼列表
所有東西一開始都要調入所需要的
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
結構來處理)
educity
cn/img_
/
/
/
gif>
圖C向你顯示的錯誤信息會在腳本嘗試訪問一個不存在的數據庫表格時出現(要注意
內層
try
catch
結構產生的異常會由外層結構來處理)
educity
cn/img_
/
/
/
gif>
以上就是關於如何使用MySQL和ASP
NET的DataGrid服務器控件的介紹
關於你可以如何使用這兩種技術還有更多的內容可談
所以我希望本文和上面提供的其他參考資源能夠幫助你對此有個初步的了解
From:http://tw.wingwit.com/Article/program/MySQL/201311/29390.html