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

这是一个已经移植到 .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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/265282.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FTP云盘

参考&#xff1a;FTP云盘项目 作者&#xff1a;糯米啊啊 发布时间&#xff1a; 2021-08-19 10:34:05 网址&#xff1a;https://blog.csdn.net/weixin_43732386?spm1001.2014.3001.5509 参考&#xff1a;自制FTP云盘项目 作者&#xff1a;不说话的小脑斧 发布时间&#xff1a; …

html transform属性,css3 transform属性详解

CSS3变形是一些效果的集合&#xff0c;比如平移translate() 、旋转rotate()、缩放scare()和倾斜skew()效果&#xff0c;每个效果都被称作为变形函数(Transform Function),它们可以操控元素发生旋转、缩放、和平移等变化。CSS3的2D transform函数包括了translate()、scale()、ro…

UIApplication的作用

1.设置app图标右上角的数字2.设置状态栏的属性&#xff08;样式、是否要显示&#xff09;3.打开某个链接\发短信\打电话4.keyWindow : 访问程序的主窗口&#xff08;一个程序只能有一个主窗口&#xff09;5.windows : 访问程序中的所有窗转载于:https://www.cnblogs.com/gatsby…

PHP调用新浪API 生成短链接

我们经常收到类似于这样的短信&#xff08;如下图&#xff09;&#xff0c;发现其中的链接并不是常规的网址链接&#xff0c;而是个短小精悍的短链接&#xff0c;产品中经常需要这样的需求&#xff0c;如果在给用户下发的短信中是一个很长的连接&#xff0c;用户体验肯定很差&a…

Chrome如何下载网页视频

目录第一步&#xff1a;右键&#xff0c;选择「检查」指令&#xff0c;进入代码控制面板第二步&#xff1a;单击代码面板左上角红色标出来的按钮&#xff0c;然后鼠标移到左边视频上第三步&#xff1a;双击src后面的代码&#xff08;全部展开&#xff09;&#xff0c;复制粘贴到…

使用MUTT步骤

使用MUTT&#xff0c;以下是步骤&#xff1a;1.1、首先确认一下MUTT是被已经安装 [oracledevdb02 ]$ rpm -aq | grep muttmutt-1.4.1-11.rhel41.2、检查系统是否安装中文字符集 [oracledevdb02 ]$ locale -a | grep zh_CNzh_CNzh_CN.gb18030zh_CN.gb2312zh_CN.gbkzh_CN.u…

html iso标准文档,HTML ISO-8859-1 参考手册

HTML ISO-8859-1 参考手册ISO(全称 International Standards Organization)为不同的字母/语言定义了标准的字符集。在 HTML 4.01 中&#xff0c;ISO-8859-1 是默认的字符。现代的浏览器支持的字符集&#xff1a;ISO-8859-1ISO-8859-1 是大多数浏览器默认的字符集。ISO-8859-1 的…

单链表反转

参考&#xff1a;【图文解析】反转一个单链表 作者&#xff1a;giturtle 发布时间&#xff1a; 2019-03-18 15:26:38 网址&#xff1a;https://blog.csdn.net/qq_42351880/article/details/88637387?spm1001.2014.3001.5501 目录例题描述思路代码实现例题描述 反转一个链表 …

Unity优化总览

CPU GC 序列化与反序列化,如protobuff,json解析String的频繁构造,拼接,如ToString()会生成字符串,Object.name会返回拷贝闭包和匿名函数,在闭包中调用外部变量时会创建临时class对象,匿名函数当做参数传入时,也会有内存开销有开销的函数,如Camera.main等,缓存一下Transform只存…

Rake的使用

Rake 是一套类似 Make 的 Builder 工具&#xff0c;让我们可以编写一些脚本任务&#xff0c;并且很方便设定各任务的相依性。在 Rails 之中就內建了许多 rake 指令&#xff0c;除了你已经使用过的 rake db:migrate 之外&#xff0c;还有例如&#xff1a;rake db:migrate rake d…

html5 usb调试,USB调试怎么打开 USB调试模式打不开怎么刷机

2016-04-25 16:58:28USB调试怎么打开 USB调试模式打不开怎么刷机标签&#xff1a;USB调试,刷机,recovery模式,卡刷【ROM之家】在手机很多应用使用时需要打开USB调试&#xff0c;比如连接电脑&#xff0c;刷机等操作。但有时候会遇上USB调试模式打不开&#xff0c;可能会选择刷机…

this 和super关键字

一、this 关键字 this关键字代表的就是函数所属的调用者。this关键字的作用&#xff1a; 1.如果存在同名的成员变量与局部变量时,在方法内部默认的时访问的时局部变量,可以通过this关键字调用成员变量 2.在一个构造方法中调用另一个构造方法来初始化对象this关键字要注意…

MODBUS通讯协议详解(基于485)

参考&#xff1a;灵育科技Modbus课程总结 作者&#xff1a;Naunyang 时间&#xff1a;2020-11-23 13:51:58 网址&#xff1a;https://blog.csdn.net/Naunyang/article/details/108740456?spm1001.2014.3001.5502 参考&#xff1a;MODBUS用于单片机通讯 作者&#xff1a;hillch…

C\C++与Java中的static关键字

C\C里面的static&#xff1a; 面向过程的static&#xff1a; 在c和c面向过程的设计里&#xff0c;在全局变量前加上static关键字则可将该变量定义为一个静态全局变量&#xff0c;比如&#xff1a; static int a; 那么c和c中的静态全局变量有什么特点呢&#xff1a; 1、 变…

步进电机、伺服电机、舵机、无刷电机、有刷电机区别

更多干货推荐可以去牛客网看看&#xff0c;他们现在的IT题库内容很丰富&#xff0c;属于国内做的很好的了&#xff0c;而且是课程刷题面经求职讨论区分享&#xff0c;一站式求职学习网站&#xff0c;最最最重要的里面的资源全部免费&#xff01;&#xff01;&#xff01;点击进…

56、servlet3.0-与SpringMVC整合分析

56、servlet3.0-与SpringMVC整合分析 web容器在启动的时候&#xff0c;会扫描每个jar包下的META-INF/services/javax.servlet.ServletContainerInitializer加载这个文件指定的类SpringServletContainerInitializerspring的应用一启动会加载感兴趣的WebApplicationInitializer接…

html提交form预处理,HTML5 之图片上传预处理

在开发 H5 应用的时候碰到一个问题&#xff0c;应用只需要一张小的缩略图&#xff0c;而用户用手机上传的确是一张大图&#xff0c;手机摄像机拍的图片好几 M&#xff0c;这可要浪费很多流量。获取图片通过 File API 获取图片。var input document.createElement(input);input…

PID算法实现温控

参考&#xff1a;PID算法 作者&#xff1a;hillchina 发布时间&#xff1a; 2016-09-28 21:48:04 网址&#xff1a;https://www.bilibili.com/video/BV1Ds411t7Hr 以上完整的视频教程在腾讯课堂里有&#xff0c;在腾讯课堂里搜索PID&#xff0c;找到灵育科技&#xff0c;课程对…

React.js

类似于Jquery&#xff0c;主要是操作Dom 特点&#xff1a;1、基于组件开发 2、基于虚拟dom&#xff0c;速度快 用React的所需要引入的三个包&#xff1a; 1、react.min.js &#xff08;引入React语法&#xff09; 2、react-dom.min.js &#xff08;用react操作Dom&#xff09;…

[Unity3d]多个摄像机叠加效果

今天学习到一个多个摄像机看到的场景在同一个层显示&#xff0c;比如我们做一个类似反光镜的效果&#xff0c;当然反光镜可以直接用Shader来实现&#xff0c;但我就是了实现一个类比这样的一个效果&#xff0c;一个摄像机将看到的图像显示到一个Texture上&#xff0c;然后将Tex…