分享
 
 
 

asp向asp.net应用程序的转变过程

王朝asp·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

下面示例中的第一个代码块对于某类 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.Write(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文挡》

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有