仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1557|回复: 19
打印 上一主题 下一主题

[学习教程] ASP网站制作之ADO.NET存取数据库

[复制链接]
跳转到指定楼层
楼主
发表于 2015-2-3 23:38:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQL Server还有更多的扩展,可以用存储过程,数据库大小无极限限制。ado|数据|数据库   以下是本CSDN社区的Michael_Jackson(麦克尔★杰克逊)的贴子(删除C#局部),放这里我想对人人更有效!

可使用 ADO.NET DataReader 从数据库中检索只读、只进的数据流。由于每次在内存中一直只要一行,所以利用 DataReader 可进步使用法式的功能并削减体系开支。

当创立 Command 对象的实例后,可挪用 Command.ExecuteReader 从数据源中检索行,从而创立一个 DataReader,如以下示例所示。

[Visual Basic]
Dim myReader As SqlDataReader = myCommand.ExecuteReader()

利用 DataReader 对象的 Read 办法可从查询了局中获得行。经由过程向 DataReader 传递列的称号或序号援用,可以会见前往行的每列。不外,为了完成最好功能,DataReader 供应了一系列办法,它们将使您可以会见其本机数据类型(GetDateTime、GetDouble、GetGuid、GetInt32 等)模式的列值。有关类型化会见器办法的列表,请参阅 OleDbDataReader 类和 SqlDataReader 类。假如在基本数据类型未知时利用类型化会见器办法,将削减在检索列值时所需的类型转换量。

以下代码示例轮回会见一个 DataReader 对象,并从每一个行中前往两个列。

[Visual Basic]
Do While myReader.Read()
Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", myReader.GetInt32(0), myReader.GetString(1))
Loop
myReader.Close()

DataReader 供应未缓冲的数据流,该数据流使进程逻辑可以无效地按按次处置从数据源中前往的了局。因为数据不在内存中缓存,所以在检索大批数据时,DataReader 是一种合适的选择。

封闭 DataReader
每次利用完 DataReader 对象后都应挪用 Close 办法。

假如 Command 包括输入参数或前往值,那末在 DataReader 封闭之前,将没法会见这些输入参数或前往值。

请注重,当 DataReader 翻开时,该 DataReader 将以独有体例利用 Connection。在初始 DataReader 封闭之前,将没法对 Connection 履行任何号令(包含创立另外一个 DataReader)。

多个了局集
假如前往的是多个了局集,DataReader 会供应 NextResult 办法来按按次轮回会见这些了局集,如以下代码示例所示。

[Visual Basic]
Dim myCMD As SqlCommand = New SqlCommand("SELECT CategoryID, CategoryName FROM Categories;" & _
"SELECT EmployeeID, LastName FROM Employees", nwindConn)
nwindConn.Open()

Dim myReader As SqlDataReader = myCMD.ExecuteReader()

Dim fNextResult As Boolean = True
Do Until Not fNextResult
Console.WriteLine(vbTab & myReader.GetName(0) & vbTab & myReader.GetName(1))

Do While myReader.Read()
Console.WriteLine(vbTab & myReader.GetInt32(0) & vbTab & myReader.GetString(1))
Loop

fNextResult = myReader.NextResult()
Loop

myReader.Close()
nwindConn.Close()

从 DataReader 中获得架构信息
当 DataReader 翻开时,可使用 GetSchemaTable 办法检索有关以后了局集的架构信息。GetSchemaTable 将前往一个填充了行和列的 DataTable 对象,这些行和列包括以后了局集的架构信息。关于了局集的每列,DataTable 都将包括一行。架构表行的每列都映照到在了局集中前往的列的属性,个中 ColumnName 是属性的称号,而列的值为属性的值。以下代码示例为 DataReader 写出架构信息。

[Visual Basic]
Dim schemaTable As DataTable = myReader.GetSchemaTable()

Dim myRow As DataRow
Dim myCol As DataColumn

For Each myRow In schemaTable.Rows
For Each myCol In schemaTable.Columns
Console.WriteLine(myCol.ColumnName & " = " & myRow(myCol).ToString())
Next
Console.WriteLine()
Next

OLE DB 章节
分层行集或章节(OLE DB 类型 DBTYPE_HCHAPTER、ADO 类型 adChapter)可使用 OleDbDataReader 来检索。当以 DataReader 的模式前往包括某章节的查询时,该章节将以此 DataReader 中列的模式前往,并公然为 DataReader 对象。

ADO.NET DataSet 也可用于经由过程表间的父子关系来暗示分层行集。有关的更多信息,请参阅创立和利用 DataSet。

以下代码示例利用 MSDataShape 供应法式来为客户列表中的每一个客户生成定单的章节列。

[Visual Basic]
Dim nwindConn As OleDbConnection = New OleDbConnection("Provider=MSDataShape;Data Provider=SQLOLEDB;" & _
"Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind")

Dim custCMD As OleDbCommand = New OleDbCommand("SHAPE {SELECT CustomerID, CompanyName FROM Customers} " & _
" APPEND ({SELECT CustomerID, OrderID FROM Orders} AS CustomerOrders " & _
" RELATE CustomerID TO CustomerID)", nwindConn)
nwindConn.Open()

Dim custReader As OleDbDataReader = custCMD.ExecuteReader()
Dim orderReader As OleDbDataReader

Do While custReader.Read()
Console.WriteLine("Orders for " & custReader.GetString(1)) ' custReader.GetString(1) = CompanyName

orderReader = custReader.GetValue(2) ' custReader.GetValue(2) = Orders chapter as DataReader

Do While orderReader.Read()
Console.WriteLine(vbTab & orderReader.GetInt32(1)) ' orderReader.GetInt32(1) = OrderID
Loop
orderReader.Close()
Loop

custReader.Close()
nwindConn.Close()



</p>  asp可以使用微软的activeX 使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般
谁可相欹 该用户已被删除
沙发
发表于 2015-2-4 04:04:37 | 只看该作者
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
柔情似水 该用户已被删除
板凳
发表于 2015-2-6 15:44:56 | 只看该作者
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
若天明 该用户已被删除
地板
发表于 2015-2-7 02:07:25 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
5#
 楼主| 发表于 2015-2-11 07:49:41 | 只看该作者
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
飘灵儿 该用户已被删除
6#
发表于 2015-2-24 21:41:29 | 只看该作者
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
精灵巫婆 该用户已被删除
7#
发表于 2015-2-27 04:32:36 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
活着的死人 该用户已被删除
8#
发表于 2015-3-5 09:29:54 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
老尸 该用户已被删除
9#
发表于 2015-3-8 23:20:17 | 只看该作者
在平时的学习过程中要注意现学现用,注重运用,在掌握了一定的基础知识后,我们可以尝试做一些网页,也许在开始的时候我们可能会遇到很多问题,比如说如何很好的构建基本框架。
山那边是海 该用户已被删除
10#
发表于 2015-3-16 17:35:16 | 只看该作者
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
小魔女 该用户已被删除
11#
发表于 2015-3-17 22:09:34 | 只看该作者
先学习用frontpage熟悉html编辑然后学习asp和vbscript建议买书进行系统学习
分手快乐 该用户已被删除
12#
发表于 2015-3-20 13:17:20 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
因胸联盟 该用户已被删除
13#
发表于 2015-3-20 15:50:15 | 只看该作者
交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
爱飞 该用户已被删除
14#
发表于 2015-3-24 15:34:45 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
灵魂腐蚀 该用户已被删除
15#
发表于 2015-4-3 02:49:12 | 只看该作者
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
若相依 该用户已被删除
16#
发表于 2015-4-6 07:35:50 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
冷月葬花魂 该用户已被删除
17#
发表于 2015-4-15 22:17:52 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
金色的骷髅 该用户已被删除
18#
发表于 2015-4-21 05:31:26 | 只看该作者
我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。
莫相离 该用户已被删除
19#
发表于 2015-4-21 21:12:09 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
小妖女 该用户已被删除
20#
发表于 2015-5-6 02:12:13 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-29 07:41

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表