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

首頁 > 編程 > .NET > 正文

如何使用ADO.NET訪問數(shù)據(jù)庫

2024-07-10 12:37:52
字體:
供稿:網(wǎng)友

本文較細致地介紹了使用ADO.NET鏈接數(shù)據(jù)庫的方法與步驟,并且給出了具體的實例,如果你對ADO.NET鏈接數(shù)據(jù)庫的方式還不是很清楚,不妨看看本文。

        一、ADO.NET訪問數(shù)據(jù)庫的步驟

  不論從語法來看,還是從風(fēng)ge和設(shè)計目標來看,ADO.NET都和ADO有顯著的不同。在ASP中通過ADO訪問數(shù)據(jù)庫,一般要通過以下四個步驟:

  (1)創(chuàng)建一個到數(shù)據(jù)庫的鏈路,即ADO.Connection;

  (2)查詢一個數(shù)據(jù)集合,即執(zhí)行SQL,產(chǎn)生一個Recordset;

  (3)對數(shù)據(jù)集合進行需要的操作;

 ?。?)關(guān)閉數(shù)據(jù)鏈路。

  在ADO.NET里,這些步驟有很大的變化。ADO.NET的最重要概念之一是DataSet。DataSet是不依賴于數(shù)據(jù)庫的獨立數(shù)據(jù)集合。所謂獨立,就是:即使斷開數(shù)據(jù)鏈路,或者關(guān)閉數(shù)據(jù)庫,DataSet 依然是可用的。如果你在ASP里面使用過非連接記錄集合(Connectionless Recordset),那么DataSet就是這種技術(shù)的最徹底的替代品。

  有了DataSet,那么,ADO.NET訪問數(shù)據(jù)庫的步驟就相應(yīng)地改變了:

  (1)創(chuàng)建一個數(shù)據(jù)庫鏈路;

  (2)請求一個記錄集合;

 ?。?)把記錄集合暫存到DataSet;

 ?。?)如果需要,返回第2步;(DataSet可以容納多個數(shù)據(jù)集合)

  (5)關(guān)閉數(shù)據(jù)庫鏈路;

 ?。?)在DataSet上作所需要的操作。

  DataSet在內(nèi)部是用XML來描述數(shù)據(jù)的。由于XML是一種平臺無關(guān)、語言無關(guān)的數(shù)據(jù)描述語言,而且可以描述復(fù)雜數(shù)據(jù)關(guān)系的數(shù)據(jù),比如父子關(guān)系的數(shù)據(jù),所以DataSet實際上可以容納具有復(fù)雜關(guān)系的數(shù)據(jù),而且不再依賴于數(shù)據(jù)庫鏈路。


  二、ADO.NET對象模型概覽

 ?。薄DOConnection

  ADO.NET有許多對象。我們先看看最基本的也最常用的幾個。首先看看ADOConnection和ADO的ADODB.Connection對象相對應(yīng),ADOConnection維護一個到數(shù)據(jù)庫的鏈路。為了使用ADO.NET 對象,我們需要引入兩個NameSpace:System.Data和System.Data.ADO,使用ASP.NET的Import指令就可以了:
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.ADO" %>

  和ADO的Connection對象類似,ADOConnection對象也有Open和Close兩個方法。下面的這個例子展示了如何連接到本地的MS SQL Server上的Pubs數(shù)據(jù)庫。
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.ADO" %>
<%
 ''設(shè)置連接串...
 Dim strConnString as String
 strConnString = "Provider=SQLOLEDB; Data Source=(local); " & _
         "Initial Catalog=pubs; User ID=sa"
 ''創(chuàng)建對象ADOConnection
 Dim objConn as ADOConnection
 objConn = New ADOConnection
 ''設(shè)置ADOCOnnection對象的連接串
 objConn.ConnectionString = strConnString
 objConn.Open() ''打開數(shù)據(jù)鏈路
 ''數(shù)據(jù)庫操作代碼省略
 objConn.Close()  ''關(guān)閉數(shù)據(jù)鏈路
 objConn = Nothing ''清除對象
%>

  上面的代碼和ADO沒有什么太大的差別。應(yīng)該提到的是,ADO.NET提供了兩種數(shù)據(jù)庫連接方式:ADO方式和SQL方式。這里我們是通過ADO方式連接到數(shù)據(jù)庫。

 ?。?、ADODatasetCommand

  另一個不得不提到的ADO.NET對象是ADODatasetCommand。這個對象專門負責(zé)創(chuàng)建我們前面提到的DataSet對象。另一個重要的ADO.NET對象是Dataview,它是DataSet的一個視圖。還記得DataSet可以容納各種各種關(guān)系的復(fù)雜數(shù)據(jù)嗎?通過Dataview,我們可以把DataSet的數(shù)據(jù)限制到某個特定的范圍。

 ?。ǎ保┫旅娴拇a展示了如何利用ADODatasetCommand為DataSet填充數(shù)據(jù):

 ''創(chuàng)建SQL字符串
 Dim strSQL as String = "SELECT * FROM authors"
 ''創(chuàng)建對象ADODatasetCommand 和Dataset
 Dim objDSCommand as ADODatasetCommand
 Dim objDataset as Dataset = New Dataset
 objDSCommand = New ADODatasetCommand(strSQL, objConn)
 ''填充數(shù)據(jù)到Dataset
 ''并將數(shù)據(jù)集合命名為 "Author Information"
 objDSCommand.FillDataSet(objDataset, "Author Information")

 ?。ǎ玻╋@示Dataset

  前面我們已經(jīng)把數(shù)據(jù)準備好。下面我們來看看如何顯示Dataset中的數(shù)據(jù)。在ASP.NET中,顯示DataSet的常用控件是DataGrid,它是ASP.NET中的一個HTML控件,可以很好地表現(xiàn)為一個表格,表格的外觀可以任意控制,甚至可以分頁顯示。這里我們只需要簡單地使用它:
<asp:DataGrid id="DataGridName" runat="server"/>

  剩下的任務(wù)就是把Dataset綁定到這個DataGrid。綁定是ASP.NET的重要概念,一般來說,你需要把一個Dataview綁定到DataGrid,而不是直接綁定Dataset。好在Dataset有一個缺省的Dataview,下面我們就把它和DataGrid綁定:
  MyFirstDataGrid.DataSource = _
     objDataset.Tables("Author Information").DefaultView
  MyFirstDataGrid.DataBind()

  完整的代碼(122301.aspx)

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.ADO" %>
<%
 ''設(shè)置連接串...
 Dim strConnString as String
 strConnString = "Provider=SQLOLEDB; Data Source=(local); " & _
         "Initial Catalog=pubs; User ID=sa"
 ''創(chuàng)建對象ADOConnection
 Dim objConn as ADOConnection
 objConn = New ADOConnection
 ''設(shè)置ADOCOnnection對象的連接串
 objConn.ConnectionString = strConnString
 objConn.Open() ''打開數(shù)據(jù)鏈路
 ''創(chuàng)建SQL字符串
 Dim strSQL as String = "SELECT * FROM authors"
 ''創(chuàng)建對象ADODatasetCommand 和Dataset
 Dim objDSCommand as ADODatasetCommand
 Dim objDataset as Dataset = New Dataset
 objDSCommand = New ADODatasetCommand(strSQL, objConn)
 ''填充數(shù)據(jù)到Dataset
 ''并將數(shù)據(jù)集合命名為 "Author Information"
 objDSCommand.FillDataSet(objDataset, "Author Information")
 objConn.Close()  ''關(guān)閉數(shù)據(jù)鏈路
 objConn = Nothing ''清除對象
 Authors.DataSource = _
     objDataset.Tables("Author Information").DefaultView
 Authors.DataBind()
%>
<HTML>
<BODY>
<asp:DataGrid id="Authors" runat="server"/>
</BODY>
</HTML>

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 西林县| 曲周县| 峨山| 龙州县| 沂水县| 洛宁县| 翁牛特旗| 丹东市| 巴东县| 宣汉县| 武清区| 板桥市| 北票市| 贺州市| 广安市| 吴忠市| 科技| 社旗县| 鲁甸县| 南部县| 赤峰市| 屏南县| 河北区| 浑源县| 宜丰县| 玉门市| 扶余县| 岳西县| 德保县| 景德镇市| 大宁县| 沧州市| 鄂尔多斯市| 嘉峪关市| 阜城县| 体育| 朝阳区| 宁明县| 牟定县| 张掖市| 肃宁县|