WEB开发网
开发学院软件开发VC 从 ADO 迁移到 ADO.NET(一) 阅读

从 ADO 迁移到 ADO.NET(一)

 2006-07-23 11:17:26 来源:WEB开发网   
核心提示: ADO 和 ADO.NET 的另外一个区别是填充前向游标的方式,ADO 中所有的行集,从 ADO 迁移到 ADO.NET(一)(5),无论前向的还是其它的,均包含在 Recordset 对象中,因而开销非常之小,ExecuteScalar 方法在检索单值时是最佳的方法,而 Recordse

ADO 和 ADO.NET 的另外一个区别是填充前向游标的方式。ADO 中所有的行集,无论前向的还是其它的,均包含在 Recordset 对象中。而 Recordset 对象通过 Recordset.Open 方法或者 Connection 或 Command 对象的 Execute 方法而打开。ADO.NET 中, 有一个专门的方法将获取前向数据提供给 DataReader:即 Command 对象的 ExecuteReader 方法, 该方法告诉命令对象为该数据提供程序明确提出 DataReader 对象以便以优化的前向方式处理结果。如前面例子所示。该命令对象还有一个方法叫 ExecuteXmlReader, 其作用是告诉命令对象生成查询结果供 XmlReader 对象处理。XmlReader 对象可被用于转换和处理 XML 查询结果,见下面的 ASP.NET 例子:oCn.Open();
SqlCommand oCmd = new SqlCommand("SELECT * FROM Orders FOR XML AUTO",oCn);
oCmd.CommandType = CommandType.Text;
XmlReader oXR = oCmd.ExecuteXmlReader();
while(oXR.Read()) {  
Response.Write(oXR.ReadOuterXml());
}
  该例子演示了 XML 如何被发送到调用浏览器。不过,XML也可以整个被聚集和流化到 Response 对象。 

单值命令

有时,大多数应用都需要从数据库查询中获取单个值的信息。在传统的 ADO 中标准的做法是创建一个 SQL 语句,并打开包含着查询结果的记录集。因为结果中只有一行一列,看起来似乎不必要。下列代码从查询中获取 单值:该例子获取 Orders 表中的行的数目:

''''-- ASP and ADO       
Set oRs = Server.CreateObject("ADODB.Recordset")
oRs.ActiveConnection = oCn
oRs.Open "SELECT COUNT(*) As iRowCount FROM Orders"
iCount = oRs.Fields("iRowCount").Value
  如果你只想取得仅仅一行和一列的信息,ADO.NET 中引入了从查询中获取单个值的新的方法。使用 ADO.NET 命令对象中的 ExecuteScalar 方法, 它可以返回其相关查询的第一行和列的信息。由于不必经过创建行集,查找该值,关闭行集等过程,因而开销非常之小。ExecuteScalar 方法在检索单值时是最佳的方法。下列代码和前例完成同样的任务, 但所使用的是 ASP.NET 和 ADO.NET 中 ExecuteScalar 方法:

上一页  1 2 3 4 5 6  下一页

Tags:ADO 迁移 ADO

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接