知识大全 ADO.NET中的.NET数据提供者

Posted

篇首语:会挽雕弓如满月,西北望,射天狼。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ADO.NET中的.NET数据提供者相关的知识,希望对你有一定的参考价值。

ADO.NET中的.NET数据提供者  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  ADO NET有两个重要组成部分 即DataSet和 NET数据提供者 在前几节的例子中 已经使用了DataSet和SqlDataAdapter 可能读者对这些类还不熟悉 本文将进行详细介绍

   NET数据提供对象分为三类 包括SQL数据提供者 OLE DB数据提供者和ODBC数据提供者 其中SQL数据提供者仅支持SQL Server 及更高版本 OLE DB数据提供者支持Access Oracle和SQL Server等 ODBC数据提供者支持的类型较多 分别包括Access Oracle SQL Server MySql和VFP(Visual FoxPro)等

  在 NET数据提供者中定义的对象 前面必须带有该提供者的标志 如上一节使用的SqlDataAdapter 因为它定义在SQL数据提供者内 所以要加前缀Sql 在另两个数据提供者内一般加前缀OleDb和Odbc

   NET数据提供者的对象包括Connection Command CommandBuilder DataReader和DataAdapter

  下面通过例子对以上对象进行说明

  ( )打开VS 在D:\\C#\\ch 目录下建立名为ProviderTest的Windows应用程序

  ( )打开工程 为当前窗体添加一个TextBox和一个非类型化的DataSet 从工具箱中直接将DataSet拖入当前窗体

  ( )本例主要通过代码方式将数据库中的数据写入到DataSet 然后再从DataSet中表的列名导出 这需要引入两个命名空间System Data和System Data SqlClient 接着为当前窗体的Load事件添加如下代码

  SqlConnection sc = new SqlConnection(@ Data Source=(local);Integrated Security=SSPI; + Initial Catalog=StudentInf );

  sc Open();

  SqlCommand cmd = new SqlCommand();

  cmd CommandText = select Name Sex Age from Class ;

  cmd CommandType = CommandType Text;

  cmd Connection = sc;

  SqlDataAdapter sd = new SqlDataAdapter();

  sd SelectCommand = cmd;

  sd Fill(this dataSet );

  textBox Text = this dataSet Tables[ ] Columns[ ] ColumnName;

  sc Close();

  本例仍然采用本章前面自建的数据库StudentInf 先将它的前三列数据填充到dataSet 中 再从其中读出第一列的列名

  下面进行代码解释

  第一个需要解释的是连接对象SqlConnection 它包含在System Data SqlClient命名空间中 它提供了到数据源的连接及相关连接细节 创建语法如下所示

  SqlConnection sc = new SqlConnection(@ Data Source=(local);Integrated Security=SSPI; + Initial Catalog= StudentInf );

  sc Open();

  Data Source是指访问的SQL Server的名称 如果SQL Server运行在本机上 直接用local即可 Integrated Security是指登录到数据库时采用内置集成安全 这样可以省去用户名和密码 SSPI全称为Security Support Provider Interface 它用于指定邓录数据库时的安全类型 Initial Catalog表示需要登录的数据库名

  建立完连接对象 还需要对它进行打开 这里选择SqlConnection的Open()方法

  建立并打开连接对象以后 下面要做的工作是可能是查询 修改或删除数据库中的内容 显然这里需要SQL命令 这也就是SqlCommand对象所要完成的事情 如下所示

  SqlCommand cmd = new SqlCommand();

  cmd CommandText = select Name Sex Age from Class ;

  cmd CommandType = CommandType Text;

  cmd Connection = sc;

  CommandText是指获取或设置对数据源执行的Transact SQL语句

  select Name Sex Age from Class

  表示从表Class 中选择Name Sex和Age 三列数据 CommandType用于解释CommandText的类型 它有三个选择项 包括StoredProcedure(存储过程的名称) TableDirect(表的名称)和Text(SQL文本命令) 最后还需要将该命令对象关联到打开的数据连接

  构建完SQL命令后 SqlCommand还需要被执行 它的执行方法有很多种 如表 所

  表   SqlCommand的执行方法

  方 法 名

  说    明

  ExecuteNonQuery()

  返回受影响的行数

  ExecuteReader()

  返回SqlDataReader()对象

  ExecuteXmlReader()

  返回XmlReader对象

  ExecuteScaler()

  返回结果集中的首行首列

  其中 前三种方法支持异步操作

  SqlDataAdapter在前两节已经介绍过 只是当时采用的是图形化的方式 它能用于填充DataSet对象 在填充DataSet之前 它必须先对数据库中需要操作的数据执行一些SQL命令 主要包括以下几种方式

  SelectCommand //执行选择操作

  DeleteCommand //执行删除操作

  UpdateCommand        //执行更新操作   

  InsertCommand         //执行插入操作

  TableMappings         //执行表映射 

  因为本例的命令对象是要执行选择操作 所以采用SelectCommand 如下所示

  sd SelectCommand = cmd;

  接下来是调用SqlDataAdapter的Fill()方法完成对dataSet 的填充

  在前面部分曾提到 DataSet是以表格的形式存放数据 所以DataSet里能包含表对象 DataSet中能包含一个或多个表 如果需要对这些表进行访问 采用如下形式

  dataSet Tables[ ] Columns[ ] ColumnName

  表示访问第一个表中第一列的列名

  最后 访问完数据库还应该关闭连接

  sc Close();

  通过以上例子的学习 读者应该对ADO NET中的 NET数据提供者有了更进一步的理解 在上例中细心的读者可能会发现还遗漏了两个对象没有解释 即SqlCommandBuilder对象和SqlDataReader对象

  SqlCommandBuilder用于创建SQL命令 它的用法和SqlCommand类似 具体使用如下所示

  SqlConnection sc = new SqlConnection(@ Data Source=(local);Integrated Security=SSPI; + Initial Catalog= StudentInf );

  sc Open();

  SqlDataAdapter sd = new SqlDataAdapter( select Name Sex Age from Class sc);

  SqlCommandBuilder scb = new SqlCommandBuilder(sd);

  sd Fill(this dataSet );

  将实例化的SqlDataAdapter作为参数传递给SqlCommandBuilder构造函数时 SqlCommandBuilder能自动生成SQL语句

  SqlDataReader对象提供一种读取数据库中行的只进流的方式 它不能被继承且必须实例化后才能使用 以下是它的简单用法

  SqlDataReader sdr = cmd ExecuteReader(); //cmd为SqlCommand对象的实例

  while (sdr Read())

  

  ……

  

  sdr Close();

cha138/Article/program/net/201311/11838

相关参考

知识大全 ADO.Net与ADO在数据内存中的差异讨论

ADO.Net与ADO在数据内存中的差异讨论  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数据

知识大全 ADO.NET操纵数据库

ADO.NET操纵数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ADONET提供了Con

知识大全 ADO.NET Entity Framework存取数据库中的图片

ADO.NETEntityFramework存取数据库中的图片  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 绑定到ADO.NET数据源

.net开发实例:绑定到ADO.NET数据源  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本示

知识大全 用ADO.NET处理层次数据

用ADO.NET处理层次数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ADONET为数据在

知识大全 数据访问与ADO.NET

数据访问与ADO.NET  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!ADONET的设计目标  A

知识大全 在 ADO 和 ADO.NET 中管理离线数据

在ADO和ADO.NET中管理离线数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  您可以使用

知识大全 ADO.net中数据库连接方式

ADO.net中数据库连接方式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在MSDN中net

知识大全 通过ADO.NET访问数据库

通过ADO.NET访问数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一ADONET访问数据

知识大全 详细介绍ADO.NET对象数据说明

详细介绍ADO.NET对象数据说明  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  学习ADONE