被認為是“世界上最流行的開放源代碼數據庫”的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裡的頁面。
圖C向你顯示的錯誤信息會在腳本嘗試訪問一個不存在的數據庫表格時出現(要注意,內層“try-catch”結構產生的異常會由外層結構來處理):
以上就是關於如何使用MySQL和ASP.Net的DataGrid服務器控件的介紹。關於你可以如何使用這兩種技術還有更多的內容可談;所以我希望本文和上面提供的其他參考資源能夠幫助你對此有個初步的了解。