自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET數(shù)據(jù)庫程序開發(fā)步驟

數(shù)據(jù)庫 后端
本文介紹ASP.NET數(shù)據(jù)庫程序。具體地說,我們將討論怎樣使用編程和聲明性方法來存取數(shù)據(jù),以及分析通過GridView控件來顯示數(shù)據(jù)的基本操作。

一、 簡介

在2005年11月7 日,微軟正式發(fā)行了.NET 2.0(包括ASP.NET 2.0),Visual Studio 2005和SQL Server 2005。所有這些部件均被設(shè)計為可并肩獨立工作。也就是說,ASP.NET版本1.x和版本2.0可以安裝在同一臺機器上;你可以既有Visual Studio.NET 2002/2003和Visual Studio 2005,同時又有SQL Server 2000和SQL Server 2005。而且,微軟還在發(fā)行Visual Studio 2005和SQL Server 2005的一個 Express式的SKU。注意,該Express版并不擁有專業(yè)版所有的特征。
2.0除了支持1.x風(fēng)格的數(shù)據(jù)存取外,自身也包括一些新的數(shù)據(jù)源控件-它們使得訪問和修改數(shù)據(jù)庫數(shù)據(jù)極為輕松。使用這些數(shù)據(jù)源控件時,你只需簡單地添加該控件到ASP.NET頁面并通過這些控件的屬性來配置連接串和SQL查詢即可。然后,通過把數(shù)據(jù)Web控件的DataSourceID屬性設(shè)置為數(shù)據(jù)源控件的ID,該數(shù)據(jù)源控件就能被綁定到一個數(shù)據(jù) Web控件(如GridView)上?,F(xiàn)今,必須靠編寫代碼來創(chuàng)建連接,創(chuàng)建命令,指定SQL查詢,檢索一個DataReader或DataSet,并且把它綁定到數(shù)據(jù)Web控件的日子已經(jīng)過去了。這些步驟能夠通過使用聲明性數(shù)據(jù)源控件來代替。(當(dāng)然,你還能通過使用你的1.x代碼中的熟悉的步驟編程地存取數(shù)據(jù)。)

在本文中我們將看一下怎樣連接和顯示來自ASP.NET數(shù)據(jù)庫程序。具體地說,我們將討論怎樣使用編程和聲明性方法來存取數(shù)據(jù),以及分析通過GridView控件來顯示數(shù)據(jù)的基本操作。

二、 在Visual Studio 2005中操作數(shù)據(jù)庫

當(dāng)你安裝Visual Studio 2005的任何版本時,你總是被詢問是否你也想安裝SQL Server 2005 Express版本。如果你選擇Yes,這將安裝你的開發(fā)包中的SQL Server 2005 Express版本-注意,在此你正在安裝Visual Studio 2005!(SQL Server 2005 Express版本可以與SQL Server的其它版本一起安裝,包括SQL Server 2000和SQL Server 2005的其它版本。)

如果你在當(dāng)前工程中使用SQL Server 2000,那么你可以通過企業(yè)管理器來以最舒適的方式操作數(shù)據(jù)庫。盡管你仍能使用企業(yè)管理器來操作SQL Server 2000,或使用SQL Server 2005的管理Studio來操作你的SQL Server 2005數(shù)據(jù)庫;但是,你也能通過Visual Studio 2005的數(shù)據(jù)連接來管理這些數(shù)據(jù)庫。我提及這些是因為對于SQL Server 2005 Express版本來說,不存在一個象SQL Server 2000的企業(yè)管理器或SQL Server 2005的管理 Studio這樣的GUI工具;代之的是,你必須通過Visual Studio 2005來創(chuàng)建和管理你的SQL Server 2005 Express版本數(shù)據(jù)庫。

提示 管理SQL Server 2005 Express版本數(shù)據(jù)庫

如果你有任何其它除 Express以外的SQL Server 2005版本,你可以在你的機器上安裝客戶端工具,它包括管理Studio-管理SQL Server 2005數(shù)據(jù)庫的GUI工具。如果你安裝了這個工具,你還可以使用它來管理SQL Server 2005 Express版本數(shù)據(jù)庫
。

數(shù)據(jù)連接結(jié)點
圖1

為了通過Visual Studio 2005來管理一個數(shù)據(jù)庫,請選擇到Server Explorer;在其上,你將找到一個數(shù)據(jù)連接結(jié)點(見上圖的快照)。你可以通過在數(shù)據(jù)連接結(jié)點上單擊鼠標(biāo)右鍵來添加新的數(shù)據(jù)庫連接并且選擇"Add Connection"。這將會調(diào)出一個對話框提示你一些信息,如數(shù)據(jù)庫服務(wù)器、認(rèn)證信息、使用什么數(shù)據(jù)庫等。如果你在自己的機器上安裝了SQL Server 2005 Express版本,那么即缺省地通過使用名為SQL Express的實例安裝了這個數(shù)據(jù)庫。因此,要連接到的服務(wù)名將是YourMachineName\SQL Express或.\SQL Express。除了連接到一個現(xiàn)有數(shù)據(jù)庫外,你還可以通過在數(shù)據(jù)連接結(jié)點上單擊鼠標(biāo)右鍵并且選擇創(chuàng)建新的SQL Server數(shù)據(jù)庫來創(chuàng)建一個新的數(shù)據(jù)庫。

一旦一個數(shù)據(jù)庫被添加到該數(shù)據(jù)連接選項卡上,你就可以通過適當(dāng)?shù)奈募A來添加、刪除或修改數(shù)據(jù)表,存儲過程,視圖等。為了創(chuàng)建一新的數(shù)據(jù)表或存儲過程,右擊適當(dāng)?shù)奈募A并且選擇"Add New X"菜單選項;為了修改一現(xiàn)有數(shù)據(jù)表、存儲過程或視圖,雙擊之即可。這將把它們調(diào)用到Visual Studio中-在此你可以據(jù)需要修改它。你也可以觀察和修改在單個數(shù)據(jù)表中的數(shù)據(jù)-這是通過右擊一個數(shù)據(jù)表名并且選擇"顯示數(shù)據(jù)表數(shù)據(jù)"來實現(xiàn)的。

三、 添加一數(shù)據(jù)庫到App_Data文件夾

除了通過數(shù)據(jù)連接選擇卡添加現(xiàn)有數(shù)據(jù)庫外,你還可以添加一個站點特定的數(shù)據(jù)庫到該網(wǎng)站的App_Data文件夾下。App_Data是一新的,保留在 ASP.NET 2.0中的文件夾-它被設(shè)計來存儲數(shù)據(jù)有關(guān)的內(nèi)容,包括SQL數(shù)據(jù)庫文件(.mdf文件)、Access數(shù)據(jù)庫文件(.mdb文件)、XML文件等。從一個ASP.NET網(wǎng)站工程,你可以輕松地創(chuàng)建并且添加一新的SQL Server 2005 Express數(shù)據(jù)庫到你的工程-通過右擊Solution Explorer中的App_Data文件夾并且選擇"Add New Item"。然后,從"Add New Item"對話框(顯示如下)中,選擇添加一新的SQL數(shù)據(jù)庫。

Add New Item
圖2

如果你想跟隨本文的步驟,那么請在App_Data文件夾下創(chuàng)建一個稱為Customers.mdf的SQL Server 2005 Express數(shù)據(jù)庫。然后,添加一個數(shù)據(jù)表到這個稱為Customers的數(shù)據(jù)庫-用下面字段列:CustomerID(一個自動增加的主鍵字段), Name,City,State和ZipCode。然后,通過VS 2005添加一些記錄到這個數(shù)據(jù)表。

另外,你還能添加現(xiàn)有 Access數(shù)據(jù)庫文件甚至SQL Server 2000數(shù)據(jù)庫文件。(注意:為了添加一現(xiàn)有SQL Server 2000 .mdf文件,你將需要確定它是第一次從企業(yè)管理器上分離;為此,在企業(yè)管理器上右擊數(shù)據(jù)庫名字,再選擇"All Tasks"并且選擇"Detach數(shù)據(jù)庫"。一旦你分離開該數(shù)據(jù)庫并且把它添加到ASP.NET數(shù)據(jù)庫程序,你就可以通過企業(yè)管理器重新依附它。)

四、 把SqlDataSource控件連接到數(shù)據(jù)庫

現(xiàn)在,既然我們看到了怎么創(chuàng)建并且通過Visual Studio的接口來使用數(shù)據(jù)庫;下面,讓我們把注意力轉(zhuǎn)到從一個ASP.NET 2.0 web頁面訪問和顯示來自一數(shù)據(jù)庫的數(shù)據(jù)上。ASP.NET 2.0包括了幾個新的數(shù)據(jù)源控件-它們的唯一目的是提供到數(shù)據(jù)的聲明性存取。共有五個內(nèi)置的數(shù)據(jù)源控件-它們都能夠在Visual Studio中的工具箱的"數(shù)據(jù)"部分找到(請見下邊的屏幕快照)。

工具箱的數(shù)據(jù)
圖3

◆SqlDataSource-用于檢索和修改來自于一個關(guān)系數(shù)據(jù)庫的數(shù)據(jù)。這里的"Sql"并不意味著這種數(shù)據(jù)源只與微軟SQL Server一起工作;而是可以與其它任何一種關(guān)系數(shù)據(jù)庫一起工作:SQL Server,Access,Oracle,等等。如果你在連接到一個SQL Server數(shù)據(jù)庫,那么控件將會非常聰明地在內(nèi)部啟用SqlClient類。

◆AccessDataSource-用于檢索和修改來自于一個Access數(shù)據(jù)庫文件的數(shù)據(jù)。你可能想知道,如果SqlDataSource能夠與Access數(shù)據(jù)庫文件一起工作,那么為什么還存在這個控件呢?其實,這個Access數(shù)據(jù)源控件使得你更容易地連接到一個Access數(shù)據(jù)庫-你只要指定到Access數(shù)據(jù)庫的.mdb文件的路徑即可。注意在使用SqlDataSource時,你需要使用一完全限定的指定數(shù)據(jù)提供者的連接串。

◆ObjectDataSource-用于通過一個商業(yè)對象來檢索和修改數(shù)據(jù)。理想地,你的ASP.NET應(yīng)用程序包括一組類-它形成中間層(而不是讓ASP.NET頁直接操作數(shù)據(jù)庫)。如果你有如此的結(jié)構(gòu),那么可以使用ObjectDataSource來查詢中間層。

◆XmlDataSource-用于檢索來自一XML文件的數(shù)據(jù)。

◆SiteMapDataSource-用于提供只讀存取定義在站點地圖中的站點結(jié)構(gòu)。這個控件在當(dāng)你想要在一個TreeView或Menu控件中顯示一個站點的結(jié)構(gòu)時使用。

在本文中,我們將只討論Sql數(shù)據(jù)源控件,并且僅分析其基本功能。

首先,讓我們添加一個Sql數(shù)據(jù)源控件到你的ASP.NET頁面。從設(shè)計視圖中,Sql數(shù)據(jù)源控件包含一個"靈敏標(biāo)簽"-它列舉出它的常用功能。該 "Configure Data Source"靈敏標(biāo)簽鏈接將激活一個向?qū)?它將一步步引導(dǎo)你通過整個的配置數(shù)據(jù)源的過程。這個向?qū)е饕腥齻€步驟(和一個可選的"子步驟"):

1. 選擇你的數(shù)據(jù)連接-在第一步中,我們需要指定連接到什么數(shù)據(jù)庫。這個屏幕包含在App_Data文件夾中數(shù)據(jù)庫的一個下拉列表和在數(shù)據(jù)連接選項卡中的一個下拉列表。還有一個"New Connection"按鈕-你可以點擊它,如果你想要連接到一個不在這些位置之一中的數(shù)據(jù)庫。如果你繼續(xù)下去,可以從下拉列表框中選擇 Customers.mdf選項。

子步驟:如果這是你添加連接的第一次,你將會被提示是否你想要把連接串保存到Web.config之中;而且如果這樣的話,應(yīng)該是連接串的名字。如果你繼續(xù)下去,我選擇用名字CustomersConnectionString把連接串保存到Web.config中。

2. 設(shè)置Select語句-下一步是指定你想要返回什么記錄,應(yīng)用什么樣的條件語句以及返回數(shù)據(jù)的排序順序。為此,你可以通過使用向?qū)磉x擇一個數(shù)據(jù)表或視圖并且選擇返回哪一列,或你可以手工地輸入一個SELECT語句。無論哪一種方法,都是讓Sql數(shù)據(jù)源控件返回來自Customers數(shù)據(jù)表的所有的列-換句話說,讓它實現(xiàn)"SELECT * FROM Customers"。

3. 查詢測試-你可以針對數(shù)據(jù)庫運行你的SELECT查詢以得到返回數(shù)據(jù)的一個預(yù)覽。請自由地點擊"Test查詢"按鈕;你應(yīng)該看見所有的來自該Customers數(shù)據(jù)表的所有記錄。

一旦你配置好SqlDataSource,請拿出一點時間看一下Source視圖并且檢查一下為Sql數(shù)據(jù)源控件所使用的聲明性標(biāo)記:

  1. <asp:SqlDataSource ID="SqlDataSource1" runat="server"   
  2. ConnectionString="<%$ ConnectionStrings:CustomersConnectionString %>" 
  3. SelectCommand="SELECT * FROM [Customers]">  
  4. </asp:SqlDataSource>  

有幾點要注意:首先,ConnectionString屬性使用了新的句法<%$ ... %>。這個句法從Web.config文件中檢索ConnectionStrings節(jié)的值的CustomersConnectionString值。換句話說,它從Customers數(shù)據(jù)庫中獲取連接串-該串是我們在Sql數(shù)據(jù)源控件的向?qū)У淖硬襟E中保存下來的;其次,SELECT查詢語句是在控件的 SelectCommand屬性中指定的。

這些數(shù)據(jù)源控件其自身只與數(shù)據(jù)一起工作。他們不顯示數(shù)據(jù)。如果你通過你的瀏覽器訪問這個 ASP.NET頁面,你將發(fā)現(xiàn)沒有產(chǎn)生輸出。為了觀察由我們剛才創(chuàng)建的Sql數(shù)據(jù)源控件所返回的數(shù)據(jù),我們需要添加一個數(shù)據(jù)Web控件。對于本文來說,讓我們使用GridView控件-你也可以在工具箱的"數(shù)據(jù)"節(jié)中找到它。該GridView是ASP.NET 1.x的DataGrid控件的"老大哥"-它提供了一些新的特性。在本文中,我們只分析到GridView的簡單的數(shù)據(jù)綁定。

現(xiàn)在,我們把一個GridView控件拖動到你的ASP.NET頁面上。從設(shè)計視圖中,該GridView的靈敏標(biāo)簽包括一個"Choose Data Source"選項并且有一個下拉列表的所有的數(shù)據(jù)源控件在該頁面上。把這個下拉列表設(shè)置為SqlDataSource1-即是我們剛添加的Sql數(shù)據(jù)源控件的ID。一旦做完這些,該GridView將自動地有一個BoundFields添加到它上面-對于由數(shù)據(jù)源所返回的每一列(該GridView的 BoundField等價于DataGrid中的BoundColumn)。通過GridView的靈敏標(biāo)簽來設(shè)置"Choose Data Source"下拉列表就可以把GridView的DataSourceID屬性設(shè)置為所選擇數(shù)據(jù)源控件的ID。

就這么多,不需要寫一句代碼!下面是通過一瀏覽器觀看該GridView時的一個屏幕快照。

GridView
圖4

通過使用GridView和Sql數(shù)據(jù)源控件,我們就能夠在30秒內(nèi)從一個空白頁轉(zhuǎn)到一個顯示數(shù)據(jù)庫數(shù)據(jù)表的內(nèi)容的頁面。事實上,我們可以在另一個30秒內(nèi)完成把分頁、雙向排序、刪除和編輯支持添加到該GridView上,現(xiàn)在且不多談!)

五、 編程連接到一數(shù)據(jù)庫

如我們前面所見,使用一個SqlDataSource檢索信息非常快捷,但是如果你想要編程地存取數(shù)據(jù)又會怎樣呢?或者,也許你已經(jīng)有了現(xiàn)成的代碼-該代碼將取得你想要的精確數(shù)據(jù)并且據(jù)需要進行管理;并且一旦完成,即修改你將要在一個GridView中所顯示的數(shù)據(jù)。沒有問題,你可以就象在1.x中一樣地在2.0中存取數(shù)據(jù)-通過創(chuàng)建一個到數(shù)據(jù)庫的連接,創(chuàng)建一個命令,指定查詢,填充一個DataReader或DataSet,然后使用該控件的DataSource 屬性和DataBind()方法把結(jié)果綁定到數(shù)據(jù)Web控件。

下列代碼顯示出一個ASP.NET頁面的Page_Load事件處理器-它編程地把Customers數(shù)據(jù)庫數(shù)據(jù)表的內(nèi)容綁定到GridView控件gvCustomers上:

  1. Protected Sub Page_Load(ByVal sender As Object, _  
  2. ByVal e As System.EventArgs) Handles Me.Load  
  3.  If Not Page.IsPostBack Then  
  4.   'Start by determining the connection string value  
  5.   Dim connString As String = ConfigurationManager.
    ConnectionStrings(connStringName).ConnectionString  
  6.   '創(chuàng)建一個SqlConnection實例  
  7.   Using myConnection As New SqlConnection(connString)  
  8.    '指定SQL查詢  
  9.    Const sql As String = "SELECT * FROM Customers" 
  10.    '創(chuàng)建一個SqlCommand實例  
  11.    Dim myCommand As New SqlCommand(sql, myConnection)  
  12.    '取回一個DataSet  
  13.    Dim myDataSet As New DataSet  
  14.    '創(chuàng)建一個SqlDataAdapter查詢  
  15.    Dim myAdapter As New SqlDataAdapter(myCommand)  
  16.    myAdapter.Fill(myDataSet)  
  17.    '把DataSet綁定到GridView  
  18.    gvCustomers.DataSource = myDataSet 
  19.    gvCustomers.DataBind()  
  20.    '關(guān)閉連接  
  21.    myConnection.Close()  
  22.   End Using  
  23.  End If  
  24. End Sub 

在此,要注意幾點:為了取得連接串,我們可以參考Web.config中的連接串設(shè)置-使用句法為
ConfigurationManager.ConnectionStrings (connStringName).ConnectionString。其中,connStringName的值應(yīng)該是在Sql數(shù)據(jù)源控件向?qū)?(CustomersConnectionString)的子步驟中指定的值。另外注意,Visual Basic 8(2.0中使用的VB版本)現(xiàn)在支持Using關(guān)鍵字-這是在前面的版本中僅適于C#的一個語言特點。

編程地存取數(shù)據(jù)和輸出結(jié)果等同于使用Sql數(shù)據(jù)源控件的情況。

六、 結(jié)論

在本文中,我們分析了在Visual Studio 2005中使用ASP.NET數(shù)據(jù)庫程序的情形。我們討論了怎樣通過Visual Studio管理數(shù)據(jù)庫,以及怎樣通過App_Data文件夾來添加網(wǎng)站特定的數(shù)據(jù)庫。最后,我們分析了怎樣使用Sql數(shù)據(jù)源控件和編程的方式來存取數(shù)據(jù)。當(dāng)使用一個數(shù)據(jù)源控件時,通過設(shè)置GridView的DataSourceID屬性來把數(shù)據(jù)綁到一個GridView控件上;當(dāng)編程地訪問該數(shù)據(jù)時,通過把數(shù)據(jù)賦值給GridView的DataSource屬性和調(diào)用GridView的DataBind()方法來實現(xiàn)把數(shù)據(jù)綁定到GridView。 (后一種方法遵循在ASP.NET 1.x中使用的模式來綁定數(shù)據(jù)到一個DataGrid。)不管使用哪一種方式來訪問數(shù)據(jù),最終的結(jié)果,如在一用戶瀏覽器中所見的,皆是相同的。

【編輯推薦】

  1. .NET 3.5擴展方法點評:優(yōu)點與問題
  2. 一個.NET調(diào)用PHP Web Service的典型例子
  3. .NET 4.0的ICustomQueryInterface新特性
  4. 在.NET反應(yīng)性框架中實現(xiàn)LINQ
  5. .NET 3.5擴展方法和Lambda表達式
責(zé)任編輯:佚名 來源: 天極網(wǎng)
相關(guān)推薦

2011-08-01 23:34:34

ASP.NETOracle

2009-07-28 14:16:31

ASP.NET與MyS

2009-02-23 15:20:03

SQL Server數(shù)據(jù)庫ASP.NET

2009-07-31 09:57:47

ASP.NET數(shù)據(jù)庫緩

2009-07-28 17:36:21

ASP.NET數(shù)據(jù)庫連

2009-07-20 17:27:01

配置ASP.NET

2009-07-29 09:12:31

ASP.NET數(shù)據(jù)庫連

2009-07-28 17:30:55

ASP.NET 2.0

2009-08-05 15:40:49

ASP.NET連接數(shù)據(jù)

2012-09-29 13:20:30

ASP.NETWeb框架

2009-07-27 17:58:10

ASP.NET數(shù)據(jù)庫編

2010-05-25 08:49:33

連接MySQL

2009-09-13 22:35:12

ASP.NET數(shù)據(jù)庫

2009-08-10 18:43:05

ASP.NET安裝步驟

2009-07-24 10:14:22

ASP.NET開發(fā)

2009-07-31 16:51:59

ASP.NET數(shù)據(jù)庫驅(qū)

2011-07-12 14:37:47

ASP.NET鏈接字符串

2009-07-29 09:33:14

ASP.NET數(shù)據(jù)庫連

2010-06-07 14:34:49

連接MySQL 數(shù)據(jù)庫

2009-07-20 17:03:55

批量插入數(shù)據(jù)ASP.NET
點贊
收藏

51CTO技術(shù)棧公眾號