程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> asp向asp.net應用程序的轉變過程

asp向asp.net應用程序的轉變過程

編輯:.NET實例教程

 下面示例中的第一個代碼塊對於某類 ASP 應用程序是很典型的,該類應用程序使用 ADO 讀取和操作從單個 SQL 查詢返回的記錄集。它使用 ADO Recordset 對象讀取從用 Microsoft Access 提供的 Northwind 示例數據庫返回的數據記錄。這些代碼將包含在具有 .ASP 文件擴展名的文件中。
[Visual Basic]
<%@LANGUAGE=VBSCRIPT%>
<! 
This ASP example uses ADO to read records from a database and print two
fIElds from all returned records to an ASP page. Connection to the Northwind database is through an ODBC system data source (DSN. 
>
<Html>
<body>
<%
   dim ADOconn, ADOrs, sqlstr
   sqlstr="SELECT * FROM Employees;"
   set ADOconn = Server.CreateObject("ADODB.Connection")
   ADOconn.Open "DSN = Test"
   set ADOrs = ADOconn.execute(sqlstr) 
   if ADOrs.BOF and ADOrs.EOF then ' Query didn't return any records.
      Response.Write("No Records.")
   else
      ADOrs.MoveFirst
      Do While Not ADOrs.EOF
         Response.Write(ADOrs("FirstName") & " " _
            & ADOrs("LastName") & "<br>")
         ADOrs.MoveNext
      Loop
      Response.Write("<p>End of data.")   
   end if
   ADOrs.close
   set ADOrs = nothing
%>
</body>
</Html>

 

下面的示例闡釋將前面示例轉換為 ASP.NET 應用程序所需的最低程度的更改。為了符合新的 Visual Basic 語法,大多數的更改都是必要的。此文件可以用 .aspx 文件擴展名重命名,並且將與 ASP.Net 一起運行。修改後的代碼行以粗體顯示。注意,在第一行上添加了具有 ASPcompat=true 屬性的 <%@ Page > 指令。


[Visual Basic]
<%@Page ASPcompat=true Language = VB%>
<! 
This example uses ADO to read records from a database and print two
fIElds from all records in the database to an ASP.Net page. 
The database is located on the server and connection is through an ODBC system data source (DSN.
>
<Html>
<body>
<%
   dim objConn, rs, sqlstr
   sqlstr="SELECT * FROM Employees;"
   objConn = Server.CreateObject("ADODB.Connection") ' Set removed.
   objConn.Open("DSN=TEST") ' Parentheses added.
   rs = objConn.execute(sqlstr) ' Set statement removed.
   Response.Write("<p>ADO Test</p>")

   if rs.BOF and rs.EOF then ' Query didn't return any records.
      Response.Write("No Records")
   else
      rs.MoveFirst
      Do While Not rs.EOF
         ' Specify Value property.
         Response.Wr
ite(rs("FirstName").Value _
            & " " & rs("LastName").Value & "<br>")
         rs.MoveNext
      Loop
      Response.Write("<p>End of data")
   end if
   rs.close
   rs = nothing ' Set statement removed.
%>

 


下一個示例是一個 ASP.NET 應用程序,該程序使用 ADO.NET 從與前面示例相同的 Northwind 數據庫讀取記錄。這些代碼生成的輸出等效於前面示例的輸出,而且已被修改以符合 ASP.Net 代碼塊約定。

該示例創建一個 ADO.NET DataSet 對象,在此情況下此對象包含一個數據表,而該數據表的使用方式與 ADO 記錄集的使用方式幾乎相同。請注意,數據集可以由一個或多個構成內存駐留數據庫的 DataTables、DataRelations 和 Constraints 的集合組成,因此 ADO.Net 數據集比 ADO 記錄集靈活得多。

為了使用 ADO.NET,需要導入 System.Data 和 System.Data.OleDb 命名空間。如果數據源是 SQL Server 數據庫,則導入 System.Data.SqlClIEnt 命名空間而不是 System.Data.OleDb。有關使用 ADO 和 SQL .Net 數據提供程序的連接對象的詳細信息,請參見管理連接。

[Visual Basic]
<%@Import Namespace="System.Data"%>
<%@Import Namespace="System.Data.OleDb"%>
<! 
This example uses ADO.Net to read records from a database and print two
fIElds from all returned records to an ASP.Net page. The database
is located on the local server.
>
<Html>
<Script Language=VB Runat=Server>
   Sub Page_Load(Sender As Object, e As EventArgs)
      Dim MyConnection As OleDbConnection
      Dim MyCommand As OleDbDataAdapter
      dim MyDataset As DataSet
      dim MyTable As DataTable
      dim loop1, numrows As Integer
      dim sqlstr As String
      
      sqlstr = "SELECT * FROM Employees;"
      
      ' Create a connection to the data source. 
      MyConnection = New OleDbConnection("Provider=SQLOLEDB;" _
         & "server=localhost;"Integrated Security=SSPI;" _ 
         & "Initial Catalog=Northwind")

      ' Create a Command object with the SQL statement.
      MyCommand = New OleDbDataAdapter(sqlstr, MyConnection)

      ' Fill a DataSet with data returned from the database.
      MyDataset = New DataSet
      MyCommand.Fill(MyDataset)
      
      ' Create a new DataTable object and assign to it
      ' the new table in the Tables collection.
      MyTable = New DataTable
      MyTable = MyDataset.Tables(0)
      ' Find how many rows are in the Rows collection 
      ' of the new DataTable object.
      numrows = MyTable.Rows.Count
       If numrows = 0 then
         Response.Write("<p>No records.</p>")
      Else
         Response.Write("<p>" & Cstr(numrows) & " records found.</p>")
         For loop1 = 0 To numrows - 1
            ' Print the values of the two columns in the Columns
            ' collection for each row.
            Response.Write(MyTable.Rows(loop1).Item("FirstName") _
               & " " & MyTable.Rows(loop1).Item("LastName") & "<br>")
         Next loop1
      End If
      Response.Write("<p>End of data.</p>")   
   End Sub
</Script>
</Html>

在數據庫查詢(甚至是多表聯接查詢)返回單個記錄集的情況下,可以通過與使用 ADO 記錄集的方式幾乎相同的方式使用單個 DataTable(在此示例中為 MyTable)。

參考《NET  FRAMEWORK SDK文擋》

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