这是一个已经移植到 .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.Recordset
rs.Open "select * from Employees", cn, adOpenKeyset, adLockPessimistic ' Move to the first record and display the data.
rs.MoveFirst
FillDataFields
   
在 .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 Then
If rs.BOF = True Then
rs.MoveFirst
End If
rs.MoveNext
End If
If rs.EOF = False Then
FillDataFields
End If
接着使用 Field 访问器从 Recordset 的当前记录提取数据。例如:
 
 
    For Each fld In Flds
FieldSize = fld.ActualSize
If FieldSize > Then
Select Case fld.Name
Case "EmployeeID"
txtEID.Text = Str(fld.Value)
Case "LastName"
txtLastName.Text = fld.Value
Case "FirstName"
txtFirstName.Text = fld.Value
Case "Title"
txtTitle.Text = fld.Value
...
End Select
End If
Next
   
下例中,DataSet 的 “Employee”Table 分配给 DataView,生成的 DataView 通过迭代提取数据值。通过使用 DataView,你能够把 DataSet 中的任一 Table 转化成 一个功能类似于传统 ADO Recordset 的对象。
 
    // Create a new dataview instance on the Employees table that was just created
DataView myDataView = new DataView(myDataSet.Tables["Employees"]); // Sort the view based on the first column name.
myDataView.Sort = "EmployeeID"; int iReportsTo; for (int i = ; i < myDataView.Count; i++)
{
Console.Write("\n************************ Employee number " + (i+).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" +
...
}
原文链接:

ADO.NET 快速入门(十五):ADO 应用转换为 ADO.NET的更多相关文章

  1. ADO.NET 快速入门(五):从 DataSet 更新数据库

    该主题说明了如何使用 DataSet 在数据库中更新数据.你依然可以直接使用 SqlCommand 在数据库中插入.更新.和删除数据,记住这一点也很重要.理解“从数据库填充DataSet”涵盖的概念有 ...

  2. ELK快速入门(五)配置nginx代理kibana

    ELK快速入门五-配置nginx代理kibana 由于kibana界面默认没有安全认证界面,为了保证安全,通过nginx进行代理并设置访问认证. 配置kibana [root@linux-elk1 ~ ...

  3. [SQL]SQL语言入门级教材_SQL语言快速入门(五)

    SQL语言快速入门(一) SQL是英文Structured Query Language的缩写,意思为结构化查询语言. SQL语言的主要功能就是同各种数据库建立联系,进行沟通.按照ANSI(美国国家标 ...

  4. ADO.NET 快速入门(十四):使用 SQL Server 检索数据

    SqlDataReader 类提供了一种从数据源读取数据记录只进流的方法.如果想使用 OLE DB 接口的数据库或者 SQL Server7.0 之前的版本,请参考文章:使用 OLE DB 检索数据. ...

  5. ADO.NET 快速入门(十二):从 SQL Server 生成 XML 数据

    本文演示如何使用2种不同的方法从 SQL Server 生成 XML.   方法1:使用了 SqlCommand 的 ExecuteXmlReader 方法获取 XmlReader,然后使用 Data ...

  6. ADO.NET 快速入门(十):过滤数据

    我们有很多方法来过滤数据.一种是在数据库命令级别,利用 where 子句查询过滤数据.另一种是在数据填充到 DataSet 以后过滤数据.本篇讨论后者.   一旦数据填充到 DataSet,你可以使用 ...

  7. ADO.NET 快速入门(八):处理 Errors

    除了 Try/Catch 和 Exceptions 以外,新的 ADO.NET 数据框架也允许在 DataSet 的每行数据添加错误信息.如果 Updates 或者其他操作失败,SqlDataAdap ...

  8. ADO.NET 快速入门(七):使用数据库事务

    数据库事务用于控制数据提交到数据库.例如,在标准的账户程序,账户的借贷必须同时完成.由于电脑偶尔发生故障(电力中断.网络中断,等等),可能有些记录被更新或者添加,但是另外一些没有.为了避免这些情况,可 ...

  9. ADO.NET 快速入门(六):读写 XML

    ADO.NET 和 DataSet 可以读写 XML Schema 和 XML.获取更多信息,请参考 How do I...Use XML and the DataSet?   DataSet 的 S ...

随机推荐

  1. ti processor sdk linux am335x evm /bin/setup-tftp.sh hacking

    #!/bin/sh # # ti processor sdk linux am335x evm /bin/setup-tftp.sh hacking # 说明: # 本文主要对TI的sdk中的setu ...

  2. Mysql,SqlServer,Oracle主键自动增长的设置

    1.把主键定义为自动增长标识符类型 MySql 在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值.例如: )); insert into customers ...

  3. 【大数取模】HDOJ-1134、CODEUP-1086

    1086: 大数取模   题目描述 现给你两个正整数A和B,请你计算A mod B.为了使问题简单,保证B小于100000. 输入 输入包含多组测试数据.每行输入包含两个正整数A和B.A的长度不超过1 ...

  4. HTTP请求中浏览器的缓存机制

    摘要:在Web开发过程中,我们可能会经常遇到浏览器缓存的问题.本文作者详细解释了浏览器缓存的机制,帮助读者更深层次的认识浏览器的缓存. 流程 当资源第一次被访问的时候,HTTP头部如下 (Reques ...

  5. MySQL基础之第2章 Windows平台下安装与配置MySQL

    2.1.msi安装包 2.1.1.安装 特别要注意的是,安装前要删除原来的my.ini和原来的data目录,改名也行,不然在最后一步会“apply security settings”报个1045错误 ...

  6. ubuntu下安装selenium2.0 环境

    参考:http://www.cnblogs.com/fnng/archive/2013/05/29/3106515.html ubuntu 安装过程: 1.安装:setuptools $ apt-ge ...

  7. Windows套接字Socket函数

    1.使用套接字函数之前,先要加载套接字函数库: #include "Winsock2.h" #pragma comment(lib,"Ws2_32.lib") ...

  8. [转]关于GCD与多线程

    GCD是什么,你知道吗?你知道了GCD,你确定你会使用吗? 这一篇文章是站在初学者角度去分析GCD,原因是这个很多iOS开发者根本就没用过,即使用过,不知道其中的原理.讲解之前认识一下什么是线程,为什 ...

  9. 【原】Storm序列化

    5. Storm高级篇 序列化 Dynamic typing Custom serialization Java serialization Component-specific serializat ...

  10. android string[] arraylist<string>互转

    string[] to arraylist<string>:eg:string[] str; arraylist<string> arr; for(int i=0;i<s ...