这是一个已经移植到 .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. vim - 查找替换

    :%s/\<key_word_replaced\>/word_you_want_to_say/g

  2. dpkg-query

    1.功能作用 查看软件包信息 2.位置 /usr/bin 3.格式用法 dpkg-query [<选项> ...] <命令> 4.主要参数 Commands: -s|--sta ...

  3. 【Unity3D】自动寻路(Nav Mesh Agent组件)

    1.首先添加场景模型 2.为场景模型(寻路路径)添加NavMesh渲染,操作:Windows->Navigation->勾选Navigation Static选项->不勾选Gener ...

  4. Mysql线程池优化笔记

    Mysql线程池优化我是总结了一个站长的3篇文章了,这里我整理到一起来本文章就分为三个优化段了,下面一起来看看.     Mysql线程池系列一(Thread pool FAQ) 首先介绍什么是mys ...

  5. 将Temporary文件夹里的Logo文件转移到Logo文件夹

    /// <summary> /// 将Temporary文件夹里的Logo文件转移到Logo文件夹 /// </summary> /// <param name=&quo ...

  6. Android-关于android:scrollbarStyle属性

    1. activity_maim.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android ...

  7. 基于ASP.NET MVC和Bootstrap搭建响应式个人博客站(一)

    1.0 为什么要做这个博客站? www.zynblog.com   在工作学习中,经常要搜索查找各种各样的资料,每次找到相关资料后都会顺手添加到浏览器书签中,时间一长,书签也就满了.而且下次再点击这个 ...

  8. Inxi:获取Linux系统和硬件信息的神器

    导读 在这篇文章里,我们将看到如何使用inxi来获取这些详情信息.在论坛技术支持中,它可以作为调试工具,迅速确定用户的系统配置和硬件信息. Inxi是一个可以获取完整的系统和硬件详情信息的命令行工具, ...

  9. Java SE 6 新特性: 对脚本语言的支持

    2006 年底,Sun 公司发布了 Java Standard Edition 6(Java SE 6)的最终正式版,代号 Mustang(野马).跟 Tiger(Java SE 5)相比,Musta ...

  10. wireshark tcp 协议分析 z

    虽然知道wireshark是抓包神器,只会大概大概用一下,还用一下下tcpdump,略懂一点BPF过滤器,也知道一点怎么用 wirkshark过滤相关的报文,但是对于详细的字段的含义,如何查看TCP的 ...