ASP.NET資料庫應用指南

來源:互聯網
上載者:User
對於一個熟練的ASP開發人員來說,ASP的資料庫應用不但簡單,而且功能還很強大。很多WEB開發人員就是因為這一點而選擇ASP的,至今為止,他們一直認為ASP資料庫功能還不錯,完全可以滿足開發要求。但是,對於一個剛剛學習ASP或者對HTML不是很熟悉的使用者來說,ASP的資料庫應用實在是太麻煩了:寫程式時ASP代碼穿插於HTML代碼之間,修改和檢測極不方便;寫程式一點沒有編寫傳統程式的感覺,感覺就像是寫HTML一樣;資料分頁不方便,而且不明白為什麼要那麼繁瑣,簡直每一頁直接數資料差不多。這些麻煩,每一個ASP開發人員都曾經經曆,那麼,現在,ASP.NET的學習者,就再也不會面對這些了,他們可以很快捷的開發資料庫應用,而且程式效能比以前高的多。現在,我們就具體來看看ASP.NET的資料庫應用。 
 
一:名字空間NameSpace 
要使用ASP.NET的資料庫功能,不可能離開名字空間NameSpace的使用。什麼是名字空間,說理論可以說半天,我們沒必要瞭解,簡單一點,名字控制項就像Delphi中的控制項,你必須將它們放入你的Form才能使用他們,同樣,如果你要使用ASP.NET的資料庫功能,你就必須先引用相應的名字空間。ASP.NET中關於資料庫的名字空間有這些: 



上面說到了ADO+,它是ADO的下一代,就像ASP.NET是ASP的下一代,相對於ADO,ADO+有以下特點: 
一) 支援XML; 
二) 更好的效能; 
三) 方便的編程介面; 
 
名字空間的具體使用如下: 
<%@ Import NameSpace=”名字空間”%> 
 
舉例: 
<%@ Import NameSpace=”System.Data”%> 
 
應該注意一點,以上代碼必須在頁面頂端。 
 
二:基本概念 
在使用ASP.NET以前,還必須瞭解一些基本概念: 
ADOConnection:相當於ASP中的資料庫Connection; 
ADOCommand:相當於ASP中的資料庫Command; 
DataView:相當於ASP的ADO記錄集RecordSet; 
DataSet:多個資料表的集合; 
 
以上概念實在是比較抽象,如果現在不理解,不要緊,現照著使用,以後慢慢就會理解。 
 
三:資料庫基本使用樣板 
看了一大堆概念,現在先來看一個執行個體(為了方便,直接使用SQL Server內建的NorthWind資料庫),本文章以後舉例,均以此樣板為基礎,請大家一定掌握: 
 
<%@ Import NameSpace="System.Data"%> 
<%@ Import NameSpace="System.Data.SQL"%> 
 
<Script Language="VB" RunAt="Server"> 
Function createdatasource() 
Dim conn AS SQLConnection 
Dim connstr As String 
Dim strsql AS String 
Dim sqlCmd AS SQLDataSetCommand 
Dim ds AS New DataSet 
'串連資料庫 
connstr= 
"Server=NHGA-D36KQ26TWB;DataBase=NorthWind;Pwd=;Uid=sa" 
conn= New SQLConnection(connstr) 
'SQL語句 
strsql="Select * from Products " 
'建立DataSet 
sqlCmd=New SQLDataSetCommand(strsql,conn) 
'將表Products加入DataSet 
sqlCmd.FillDataset(ds,"Products") 
 
return ds.Tables("Products").DefaultView 
end Function 
 
'綁定資料函數 
sub BindGrid() 
DataGrid1.DataSource=CreateDataSource() 
DataGrid1.DataBind() 
End Sub 
 
'頁面登入  
Sub Page_Load(Source AS Object,E AS EventArgs) 
CreatedataSource() 
BindGrid() 
End Sub 
</Script> 
 
<html> 
 
<head> 
<meta http-equiv="Content-Language" content="zh-cn"> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<meta name="GENERATOR" content="Microsoft FrontPage 4.0"> 
<meta name="ProgId" content="FrontPage.Editor.Document"> 
<title>ASP.NET資料庫使用</title> 
</head> 
 
<body> 
<Form RunAt="Server"> 
<ASP:DataGrid id="DataGrid1" RunAt="Server" /> 
</Form> 
</body> 
 
</html> 
 
執行以上程式,效果如下: 



(程式執行效果)
 
 
以上是一個最簡單的ASP.NET資料庫應用,唯一功能就是列出NorthWind資料庫Products表的所有記錄。可以和ASP比較一下,發現這個程式是如此的簡單。為了更好的瞭解資料庫應用的基本架構,我們來看看這個資料庫應用具體是怎樣實現的。 
 
頁面登入時,調用CreateDataSource和BindGrid函數,CreateDataSource函數串連資料庫並且建立DataView,BindGrid函數將資料繫結到DataGrid。有關這兩個函數的具體語句,代碼中均有說明。 
 
四:基本資料庫應用 
有了以上模板,ASP.NET資料庫應用的基本架構已經有了,現在,我們需要在這個架構上作一些修改,是其更加符合我們的實際使用要求。 
 
一)介面設定 
如果我們呈現給訪問者的資料全部使用以上模板的介面,也未嘗不可。但是 
誰不希望自己的頁面美觀一點呢?還是以上代碼,只是修改DataGrid部分,資料庫部分不變。將程式中: 
<ASP:DataGrid id="DataGrid1" RunAt="Server" /> 
修改為: 
<ASP:DataGrid id="DataGrid1" RunAt="Server" 
BorderColor="black" 
BorderWidth="1" 
CellPadding="3" 
 
BackImageUrl="" 
BackColor="#FFCCCC" 
ForeColor="Black" 
 
HeaderStyle-BackColor="#CCCCFF" 
HeaderStyle-ForeColor="Blue" 
 
AlternatingItemStyle-BackColor="#F3f3f3" 

</ASP:DataGrid> 
你將得到以下效果: 



(程式執行效果)
 
在這個介面裡面,我們設定了字型,每行背景,DataGrid背景等,我們現在一一分析: 
BorderColor="black" 
BorderWidth="1" 
CellPadding="3" 
以上語句設定DataGrid的邊框為黑色;邊框粗細為1;儲存格跨距為3; 
BackImageUrl="apictue.gif" 
BackColor="#FFCCCC" 
ForeColor="Black" 
以上語句設定DataGrid的背景圖象為apicture.gif;背景顏色為#FFFFCC;字型顏色為黑色; 
HeaderStyle-BackColor="#CCCCFF" 
HeaderStyle-ForeColor="Blue" 
以上語句設定DataGrid的Header屬性,背景顏色為#CCCCFF;字型顏色為:藍色; 
AlternatingItemStyle-BackColor="#F3f3f3" 
以上語句設定DataGrid每一行交替背景顏色為F3F3F3;這一語句在ASP裡面實現很繁瑣,在這裡,一句就解決。 
 
二)資料分頁 
ASP裡面的資料分頁實在繁瑣,不得不化很多精力去寫代碼。一些程式員就是因為這一點,如果資料不是太多乾脆不分頁,勉強應付。現在我們再也不要為資料分頁煩惱了,將一下代碼加入DataGrid設定: 
AllowPaging="True" 
PageSize="5" 
PagerStyle-HorizontalAlign="Right" 
PagerStyle-NextpageText="下一頁 >>" 
PagerStyle-PrevPageText="<< 上一頁" 
頁面效果如下: 



(程式執行效果)
 
這就是一個標準的資料分頁,是不是比ASP簡單的多?我們來仔細看一下代碼是怎樣的: 
AllowPaging="True" 
以上代碼允許資料進行分頁,預設是False。所以,如果你要資料分頁,一定要加上這一句; 
PageSize="5" 
PageSize和ASP中的一樣,表示每頁有多少記錄; 
PagerStyle-HorizontalAlign="Right" 
以上語句表示分頁符在頁面的位置的右邊。 
PagerStyle-NextpageText="下一頁 >>" 
PagerStyle-PrevPageText="<< 上一頁" 
以上語句表示用“下一頁”“上一頁”作為分頁符號,如果不希望這樣,想直接用數字表示,去掉這兩句就可以了。 
注意: 
與分頁有關的還有PageCount屬性,可以得到分頁的總數; 
 
三)資料排序 
資料排序不是在SQL語句裡面就可以設定嗎,為什麼還要專門來一個資料排序?SQL語句的資料排序只能伺服器端設定,如果使用者希望按照自己的喜好排序怎麼辦?ASP裡面是沒有辦法解決的,現在,我們看看ASP.NET怎樣解決這個問題。 
在DataGrid設定裡面加入一下語句: 
AllowSorting="true" 
OnSortCommand="Sort_Grid" 
第一句表示DataGrid採用要求排序;第二局表示點擊排序以後的事件;我們來看看這個事件: 
Sub Sort_Grid(Sender As Object,E As DataGridSortCommandEventArgs) 
SortField=E.SortField  
DataGrid1.DataSource=CreateDataSource() 
DataGrid1.DataBind() 
End Sub 
點擊排序以後,首先,設定排序欄位為點擊的欄位,如何重新顯示資料。效果如下: 



(程式執行效果)
 
如上圖,每一個欄位名均是一個LinkButton(串連),點擊這個欄位名,就可以按這個欄位排序。需要注意的是,排序不是對當前頁排序,而是對整個DataGrid排序。 
 
四) 資料編輯 
資料庫操作出了資料瀏覽,最大部分其實就是對資料的處理(增加,修改,刪除)。資料處理,ASP.NET和ASP沒有太多的區別,我們看一個增加資料的例子就可以瞭解ASP.NET的資料編輯的實現了。 
Sub InsertRec()  
Dim conn AS SQLConnection 
Dim connstr As String 
Dim sqlinsertcmd AS SQLCommand 
Dim sqlinsert AS String 
 
connstr="Server=NHGA-D36KQ26TWB;DataBase=MyBase;Pwd=;Uid=sa" 
conn= New SQLConnection(connstr) 
 
sqlinsert="Insert Into MyTable(title,name,content) Values(@title,@name,@content)" 
sqlinsertcmd=New SQLCommand(sqlinsert,conn) 
 
sqlinsertcmd.parameters.Add(New SQLParameter("@title",SQLDataType.varchar,20)) 
sqlinsertcmd.parameters.Add(New SQLParameter("@name",SQLDataType.varchar,20)) 
sqlinsertcmd.parameters.Add(New SQLParameter("@content",SQLDataType.varchar,20)) 
 
sqlinsertcmd.parameters.item("@title").value="Test3" 
sqlinsertcmd.parameters.item("@name").value="Test3" 
sqlinsertcmd.parameters.item("@content").value="Test3" 
 
conn.open() 
sqlinsertcmd.execute() 
 
End Sub 
 
以上代碼中,首先建立一個資料庫連接,然後建立了一個插入語句,此插入語句使用了以@開頭的參數,這一點可能與ASP稍有差別。使用參數之前,必須先建立參數,並要說明參數的資料類型。如何開啟串連,執行插入語句就可以了。 
 
五:總結 
以上我們設計到了ASP.NET資料庫操作中常用的部分,基本可以實現我們一般編程要求。但是,如果要全面瞭解ASP.NET的資料庫功能,以上顯然是不夠的,這需要我們更加不斷地學習其他ASP.NET的知識,融會貫通。 


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.