程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET數據庫編程之Access連接失敗

ASP.NET數據庫編程之Access連接失敗

編輯:關於ASP.NET

錯誤和失敗總會不可避免地在應用程序中出現。如果有人在MDB目錄之上又添加了一級新的文件夾而“更新”了服務器的目錄樹,那麼將會發生什麼?如果MDB名稱被更改了會怎樣?如果MDB文件被損壞又該如何呢?以上每一個問題都將阻止對數據的成功連接並導致一個失敗頁面。好的編程實踐表明需要盡可能小心地對待任何失敗。

在討論實際命令之前,我們需要了解的是AccessDataSource控件派生於SqlDataSource控件。在大多數情況下,這只是一個背景問題。但是當處理異常的時候,就必須使用實際上存在於(從而以之命名的)SQL數據源對象之中的對象。

軟著陸的技術使用的代碼將在AccessDataSource控件經歷OnSelected event時被觸發。當GridView從數據源控件請求數據時,這個事件將會在內部觸發。 處理連接錯誤的代碼就會檢查到從數據源控件傳遞過來的異常參數。AccessDataSource控件沒有關於這個參數的自己的名稱,所以只能使用名稱SqlDataSourceStatus- EventArguments。如果異常參數為空,那麼表示什麼事情都沒有發生。如果異常參數有一個值,那麼將檢查這個值。如果參數是OLEDB Exception類型的,那麼頁面上的警告標簽的文本將會有提示信息。再次提醒您注意術語的使用。如果有一個AccessException類型,那將更明了,可惜實際上沒有這種類型。可以使用更加普通的OleDbException對象並以處理異常的命令結束腳本。這樣將允許GridView繼續呈現,雖然沒有數據,並防止出現淺褐色背景的常規ASP.NET 2.0失敗頁面。因為GridView沒有得到任何數據,所以它將會顯示一個替換表格,表格中只有一個在其EmptyDataText屬性中顯示消息的單元格。

如果您在進行這些步驟中遇到困難,千萬不要感到悲觀;下一個練習將會進行示范。而現在,只需將代碼剪切並粘貼到頁面之中。在本書的後面,我將會討論如何創建一個用於連接失敗情況下的GridView的替換頁面以及處理錯誤事件的詳細內容。

試一試#4—— 處理AccessDataSource連接失敗

(1) 在ch02文件夾中,創建一個名為TIO-4-ConnectionFailure-CS.aspx的文件。在Design視圖中,添加一個指向Northwind 的AccessDataSource控件至頁面,該控件從表中選擇了所有列。

(2) 添加GridView用來顯示數據源控件中的信息。同樣,添加一個標簽控件,並將其命名為“Message”。

(3) 現在切換至Source視圖並對標記作一些修改,如下突出顯示代碼所示。如果其中有<columns>標記部分,則將其刪除。留下的代碼應當如下所示:

<html>
<head id="Headl" runat="server">
<title>Chapter 2 TIO #4 Connection Failure to Access in C#</title>
</head>
<body>
<h3>Chapter 2 TIO #4 Connection Failure to Access in C#</h3>
<form id="forml" runat="server">
<asp:label ID="Message" runat="server"/><br/><br/>
<asp:gridview id="GridViewl" runat="server"
datasourceid="AccessDataSourcel"
AutoGenerateColumns="true"
EmptyDataText="No data records were returned" />
<asp:AccessDataSource ID="AccessDataSourcel" Runat="server"
selectcommand="Select * From Products"
datafile="~/App_Data/Northwind.mdb"
OnSelected="AccessDataSourcel_Selected"
/>
</form>
</body></html>

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