国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

如何實現(xiàn)用ODBC連接MySQL和ASP.NET

2019-11-18 16:46:42
字體:
供稿:網(wǎng)友

被認(rèn)為是“世界上最流行的開放源代碼數(shù)據(jù)庫”的MySQL從最初一個毫不起眼的低成本數(shù)據(jù)庫服務(wù)器成長為驅(qū)動龐大Web網(wǎng)站和重要商業(yè)系統(tǒng)的服務(wù)器經(jīng)歷了一個漫長的歷程。但是,如果你是一位asp.net的開發(fā)人員,那么你總會碰到一個不如意的地方:MySQL原先是為UNIX平臺上的應(yīng)用程序設(shè)計的,所以對Windows的支持處于次要地位。

但是現(xiàn)在,Windows版本的MySQL已經(jīng)具備了與UNIX版本同樣的特性和穩(wěn)定性,而且它被認(rèn)為是用于Windows開發(fā)的可行的數(shù)據(jù)庫服務(wù)器。現(xiàn)在讓我們來看看你可以如何使用ODBC在.NET框架內(nèi)連接MySQL數(shù)據(jù)庫。

安裝

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

要把ASP.NET和MySQL連接起來,你需要使用ODBC.NET。一般來說,ODBC.NET的DataPRovider是標(biāo)準(zhǔn)的.NET框架(1.1及以上的版本)的一部分,所以會和后者一起自動安裝好。

一旦確認(rèn)ODBC.NET安裝完畢,你就需要下載用于MySQL的ODBC驅(qū)動程序。再強(qiáng)調(diào)一遍,MySQL的開發(fā)人員都很樂意提供幫助——他們都在自己的Web網(wǎng)站上提供了這些驅(qū)動程序。在下載文件的時候你可以看看FAQ文檔,它會列出在往系統(tǒng)里安裝MySQL ODBC驅(qū)動程序期間可能碰到的所有的問題。

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

用ASP.NET連接MySQL

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

那這又與我們今天要談的話題有什么關(guān)系呢?嗯,這是我第一個例子的開場白,這個例子就是創(chuàng)建一個像列表A里的書籍的數(shù)據(jù)庫。

要建立這個表格,就要使用下面的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;
 
  
而要執(zhí)行這個查詢,就要使用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)”表格創(chuàng)建好了,就可以開始插入數(shù)據(jù)了。列表B里列舉了一些項目。現(xiàn)在,用ASP.NET做同樣的事情——執(zhí)行SELECT查詢(列表C)并在瀏覽器里顯示結(jié)果。如果一切都沒有問題——MySQL服務(wù)器在運(yùn)行,MySQL ODBC驅(qū)動程序安裝正確,“書籍”表格含有數(shù)據(jù)——你就應(yīng)該會看到像圖A里的頁面。

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

圖B

圖C向你顯示的錯誤信息會在腳本嘗試訪問一個不存在的數(shù)據(jù)庫表格時出現(xiàn)(要注意,內(nèi)層“try-catch”結(jié)構(gòu)產(chǎn)生的異常會由外層結(jié)構(gòu)來處理):

 

圖C
 

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


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 定结县| 时尚| 明溪县| 漳平市| 海兴县| 江口县| 平陆县| 湖州市| 同江市| 南康市| 东丽区| 黄冈市| 武安市| 许昌市| 个旧市| 洪洞县| 和硕县| 新巴尔虎左旗| 南康市| 谷城县| 象州县| 浦城县| 二手房| 惠东县| 安塞县| 南部县| 鄂伦春自治旗| 聂拉木县| 襄汾县| 伊宁市| 郓城县| 灵武市| 饶河县| 无为县| 中江县| 武隆县| 进贤县| 银川市| 普陀区| 平果县| 呼和浩特市|