知识大全 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在数据内存中的差异讨论 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 数据
ADO.NET操纵数据库 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ADONET提供了Con
知识大全 ADO.NET Entity Framework存取数据库中的图片
ADO.NETEntityFramework存取数据库中的图片 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
.net开发实例:绑定到ADO.NET数据源 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 本示
用ADO.NET处理层次数据 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ADONET为数据在
数据访问与ADO.NET 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!ADONET的设计目标 A
在ADO和ADO.NET中管理离线数据 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 您可以使用
ADO.net中数据库连接方式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在MSDN中net
通过ADO.NET访问数据库 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一ADONET访问数据
详细介绍ADO.NET对象数据说明 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 学习ADONE