这是一个已经移植到 .NET 的 ADO 应用的例子。也演示了单向、只读、快速 DataReader 的使用。它演示如何使用 DataView 类从 DataSet 获取一个 Table 和 操作一个类似于旧的 ADO 记录集模型。请记得,ADO 记录集仅仅包含一个 Table 的数据,但是 ADO.NET DataSet 可以包含多个 Tables 并且非常灵活。
原始的 ADO 示例使用 SQL Server 2000 下的 Employee 示例。原始的示例使用 ADO Recordset 对象管理从 SQL 查询返回的结果数据。新的示例演示了如何使用 SqlDataAdapter 填充 DataSet(类似于 ADO Recordset 的模型)。还有,原始的示例使用弹窗(.cpp)和表单(.frm)显示 Northwind 数据库 Employ Table 的输出。然而,在示例中 .NET 示例仅仅使用控制台窗口输出非图形数据。
下面示例的要点:
1、连接到数据库
2、使用轻量级、只读、单向的读取器
3、执行 SQL 查询并且生成 ADO Recordset 或者 ADO.NET DataSet
4、使用 ADO Recordset 或者 ADO.NET DataSet 访问指定记录集
通常在一个 ADO 应用程序中,包括到数据库的连接和执行 SQL 的查询并且生成 ADO Recordset。
在原始的代码中使用 Visual Basic 版本的 Employee,使用 ADO 连接对象和连接串“server=(local)\SQLExpression;Integrated Security=SSPI;database=northwind;provider=SQLNCLI”。然后记录集通过使用 ADO Recordset.Open 方法打开 SQL‘SELECT’查询。
    ' Open the database.
 cn.Open("server=(local)\SQLExpress;Integrated Security=SSPI;database=northwind;provider=SQLNCLI")' Open the Recordset.Set rs = New ADODB.Recordsetrs.Open "select * from Employees", cn, adOpenKeyset, adLockPessimistic' Move to the first record and display the data.
    rs.MoveFirstFillDataFields

在 .NET 中的实现非常类似。使用 SqlConnection 对象和连接串“server=(local)\SQLExpress;Integrated Security=SSPI;database=northwind”。读取器通常用于循环执行查询返回的数据。这个读取器(只读、单向的数据读取器)性能优于原生的 ADO 读取器。SqlDataAdapter 通过使用 SQL ‘SELECT’查询和 Fill 方法填充 DataSet。
    SqlConnection mySqlConnection = new SqlConnection("server=(local)\\SQLExpress;Integrated Security=SSPI;database=northwind");SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter("select * from employees", mySqlConnection);DataSet myDataSet = new DataSet();mySqlDataAdapter.Fill(myDataSet,"Employees");

在 ADO 应用程序中,有些函数在 Recordset 中从每个记录和字段组合获取数据。这常常是通过调用 Recordset 的 MoveFirst、MoveLast、MovePrevious 和 MoveNext 方法完成。例如:
    If rs.EOF = False ThenIf rs.BOF = True Thenrs.MoveFirstEnd Ifrs.MoveNextEnd IfIf rs.EOF = False ThenFillDataFieldsEnd If

接着使用 Field 访问器从 Recordset 的当前记录提取数据。例如:
    For Each fld In FldsFieldSize = fld.ActualSizeIf FieldSize > 0 ThenSelect Case fld.NameCase "EmployeeID"txtEID.Text = Str(fld.Value)Case "LastName"txtLastName.Text = fld.ValueCase "FirstName"txtFirstName.Text = fld.ValueCase "Title"txtTitle.Text = fld.Value...End SelectEnd IfNext

下例中,DataSet 的 “Employee”Table 分配给 DataView,生成的 DataView 通过迭代提取数据值。通过使用 DataView,你能够把 DataSet 中的任一 Table 转化成 一个功能类似于传统 ADO Recordset 的对象。
    // Create a new dataview instance on the Employees table that was just createdDataView myDataView = new DataView(myDataSet.Tables["Employees"]);// Sort the view based on the first column name.myDataView.Sort = "EmployeeID";int iReportsTo;for (int i = 0; i < myDataView.Count; i++){Console.Write("\n************************ Employee number " + (i+1).ToString() + " ************************\n");Console.Write("EmployeeID:\t" + myDataView[i]["EmployeeID"].ToString() + "\n" +"FirstName:\t" + myDataView[i]["FirstName"].ToString() + "\n" +"LastName:\t" + myDataView[i]["LastName"].ToString() + "\n" +"Title:\t\t" + myDataView[i]["Title"].ToString() + "\n" +"TitleOfCourtesy:" + myDataView[i]["TitleOfCourtesy"].ToString() + "\n" +...}

原文链接:
http://quickstarts.asp.net/QuickStartv20/howto/doc/adoplus/employees.aspx

转载于:https://www.cnblogs.com/JavCof/p/3488081.html

ADO.NET 快速入门(十五):ADO 应用转换为 ADO.NET相关推荐

  1. CarSim仿真快速入门(十五)—CarSim传感器仿真之ADAS Sensor Objects (1)

    BikeSim,CarSim和TruckSim数学模型包括多达200个可选对象,其位置和运动可以独立于仿真车辆进行控制.这些对象可以表示其他车辆,固定对象(树木,建筑物),行人,动物,道路标记和其他感 ...

  2. Python3快速入门(五)——Python3函数

    Python3快速入门(五)--Python3函数 一.函数定义 1.函数定义 Python 定义函数使用 def 关键字,一般格式如下: def function_name(parameter_li ...

  3. LayIM 3.9.1与ASP.NET SignalR实现Web聊天室快速入门(五)之使用RabbitMQ缓存消息

    前言 本系列文章特点:使用ASP.NET SignalR和LayIM快速入门对接,实现一对一聊天,群聊,添加聊天群组,查找聊天记录等功能.源代码不包含LayIM的源代码,因为官方并没开源属于收费资源, ...

  4. python快速入门【五】---- 面向对象编程、python类

    python入门合集: python快速入门[一]-----基础语法 python快速入门[二]----常见的数据结构 python快速入门[三]-----For 循环.While 循环 python ...

  5. 全干货之Python3快速入门(五)——Python3函数

    全干货之Python3快速入门(五)--Python3函数 什么是函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段 函数能提高应用的模块性,和代码的重复利用率. 在Python中 ...

  6. CSS3快速入门:五、浮动

    浮动   在CSS中,浮动是非常重要的一个功能,主要是用来控制行元素或者块元素并列显示或者向左或者向右浮动. CSS系列文章目录 CSS3快速入门:一.三种CSS导入方式 CSS3快速入门:二.CSS ...

  7. 小猪的C语言快速入门系列(五)

    小猪的C语言快速入门系列(五) 标签: C语言 本节引言: 上一节我们C语言 复合数据类型 中的 数组 进行了解读,本节我们会继续来学习 复合数据类型中的 指针,指针可是C语言的灵魂:利用指针可以表示 ...

  8. C++多线程快速入门(五)简单线程池设计

    目录 设计思路 主线程运行逻辑 task以及taskpool设计 详细流程讲解 完整代码 打印结果 往期回顾 设计思路 线程池实际上就是一组线程,当我们需要异步执行一些任务时,经常要通过OS频繁创建和 ...

  9. Flume快速入门(五):File Channel之重播(replay)

    当FlumeChannel启动时,或者故障恢复时,会经历一次重播(replay)过程,重播的目的就是还原上一次的"现场",当然,最主要的就是恢复FlumeEventQueue中的内 ...

最新文章

  1. Django视图(一)
  2. 使用 generator-easy-ui5 快速创建 SAP UI5 应用的工程结构
  3. STL - 底层实现
  4. rails 5 action cable 服务器部署
  5. 写给前端的算法进阶指南,我是如何两个月零基础刷200题 等推荐
  6. python区域增长算法_区域增长算法
  7. P4211 [LNOI2014]LCA(离线 + 在线 做法)
  8. 有关迷宫的c语言程序的编写,3种C语言编写走迷宫的方法
  9. 注解形式控制器(4) 数据绑定
  10. 局部临时表 全局临时表 表变量
  11. 面试官:说说 Spring 事务设计原理?面试必问!
  12. TiDB 在平安核心系统的引入及应用
  13. 读书笔记:《明朝那些事第三部:妖孽宫廷》
  14. VC++实现内存映射文件(附源码)
  15. gsm手机影响计算机屏幕会怎么样,手机的辐射对孕妇的危害有多大
  16. 计算机辅助绘图中测距在哪,cad测距(cad测量距离快捷键)
  17. Java获取今天是星期几
  18. 零知识证明(zero-knowledge proofs)
  19. 数学竞赛-全微分与解析几何
  20. 高考数学辅导高三数学知识点总结

热门文章

  1. Docker 环境下部署 redash
  2. jsonp原生js跨域拿新浪数据插件封装【可扩展】
  3. js中如何删除json对象的某一个选项
  4. 概率分布之间的距离度量以及python实现(三)
  5. spring-boot 速成(8) 集成druid+mybatis
  6. LINQ to SQL 实现 GROUP BY、聚合、ORDER BY
  7. Unity3D游戏开发之自由视角下的角色控制
  8. 夺命雷公狗---node.js---20之项目的构建在node+express+mongo的博客项目5mongodb在项目中实现添加数据...
  9. BZOJ2844 albus就是要第一个出场
  10. bzoj2957 奥妙重重的线段树