设为首页 加入收藏

TOP

浅谈ADO.NET中的对象――Connection、Command、DataReader、DataAdapter、DataSet、DataTable(一)
2014-11-24 07:47:59 来源: 作者: 【 】 浏览:7
Tags:浅谈 ADO.NET 对象 Connection Command DataReader DataAdapter DataSet DataTable

可能是当初没有好好总结的缘故,学习.NET以来,对ADO.NET中的对象一直有些模糊,今天重新回顾了一下,通过查资料,总结,结合自己的观点整理一下ADO.NET中Connection、Command、DataReader、DataAdapter、

DataSet、DataTable这几个对象的相关知识,希望对初学者能起到一个全局把控的作用,希望大牛能留下宝贵的指导意见。

以下的例子仅以连接 SQL Server数据库为例,所以分别以SqlConnection、SqlCommand、SqlDataReader、SqlDataAdapter、DataSet、DataTable为例进行说明。

ADO.NET对象

SqlConnection】

我们打电话时,通常有三个步骤:拨号→通话→挂机。

数据库打交道的过程也是如此。通常我们访问数据库,首先都必须要通过SqlConnection与数据库建立连接,然后对数据库进行操作,最后关闭与数据库的连接。

\

下面是一个完整的SqlConnection的生命周期:

    string strConn = "server=192.168.24.123;database=DataBaseName;uid=sa;pwd=123456";  //定义数据库连接字符串
    SqlConnection conn = new SqlConnection(strConn);                                   //实例化Sqlconnection对象
    //具体操作
    //……
    //……
    //具体操作
    conn.Close();                                                                      //操作完毕,连接关闭

【SqlCommand】

从字面上来看就会理解SqlCommand就是一个命令,当与数据库建立连接之后,就可以用SqlCommand来对数据库进行增删改查、执行存储过程等。

我们可以通过三种方法来创建SqlCommand对象:

1、直接创建,再分别对属性赋值:

    string strConn,cmdText;
    strConn="server=192.168.24.123;database=DataBaseName;uid=sa;pwd=123456";
    cmdText="select * from TableName"; 
    SqlCommand cmd=new SqlCommand();
    cmd.Connection=strConn;
    cmd.cmdText="select * from TableName";

2、利用SqlCommand的构造函数进行创建:

    string strConn,cmdText;
    strConn="server=192.168.24.123;database=DataBaseName;uid=sa;pwd=123456";
    cmdText="select * from TableName"; 
    SqlCommand cmd=new SqlCommand(strConn,cmdText);

3、通过SqlConnection对象的CreateCommand()方法创建:

    strConn,cmdText;
    strConn="server=192.168.24.123;database=DataBaseName;uid=sa;pwd=123456";
    SqlConnection conn=new SqlConnection(strConn);
    SqlCommand cmd=conn.CreateCommand();
    cmd.cmdText="select * from TableName"; 

SqlCommand常用的属性有:

◆ CommandText:需要执行的SQL语句、表名或存储过程。

◆ CommandType:需要执行的CommandText的类型,默认值是“Text”,表示执行的是SQL语句;值“StoredProcedure表示执行的是存储过程”。

◆ Parameters:CommandText中的参数,可以通过cmd.Parameters.Add()或cmd.Parameters.AddRange()方法添加参数。

SqlCommand常用的方法有:

◆ ExecuteNonQuery():返回值为整形,表示对数据库进行增删改后,数据库所影响的行数,也可以直接执行。

◆ ExecuteReader():返回值为SqlDataReader类型,用于对数据库的查询,下文对SqlDataReader的描述中会说明。

◆ ExecuteScalar():返回值为object类型,用于查询数据库中的单个值,比如查找到的姓名为“张三”,那么查询后就可以转化成字符型;查找到的张三的年龄为21,那么查询后就可以转化成整型。

更多关于SqlCommand的细节可以参考MSDN:SqlCommand 类

SqlDataReader】

SqlDataReader主要与SqlCommand结合使用用来快速读取,并且这种读取只能“向前”读取数据。

\

比如查询到上面四条数据,SqlDataReader只能按照姓名分别为“张三”→“李四”→“王五”→“赵六”向下依次读取元组。SqlDataReader的Read()方法返回值为布尔类型,向下读取时如果下一条存在数据,则返回True,如果不存在数据,则返回False,类似于VB中的EOF和BOF。

创建:SqlDataReader只能由SqlCommand对象的ExecuteReader()方法创建。

SqlDataReader可以逐条读取数据,也可以直接作为数据源赋值给某些控件的DateSource属性。

需要注意的是:一个SqlConnection连接下只允许打开一个SqlDataReader,此时这个SqlConnection对象只为这一个SqlDataReader服务,如果还想再打开一个SqlDataReader,则必须先讲前面那个关闭(当然也可以再创建一个SqlConnection对象,了解一下多线程就会明白)。就如同一个人一张嘴不可能同时吃两碗饭一样,你得先停止吃第一个碗里的饭才能去吃第二碗饭。

SqlDataAdapter】

对数据库的操作可以分为两张方式,一种是基于连接的,一种是离线的。如下图:

\

SqlDataAdapter通常和DataSet一起使用,上图中,左边的部分在SqlCommand和SqlDataReader进行操作的同时,SqlConnection都保持在打开的状态;右边部分的工作流程为:SqlConnection先打开与数据库的连接,SqlDataAdapter再将从数据库中查询到的数据提取出来保存(通过)到DataSet中(通过SqlDataAdapter的Fill()方法),同时SqlDataAdapter与DataSet的连接关闭,当DataSet中的数据更新时,SqlDataAdapter再将DataSet中更新后的数据 “搬运” 到数据库中并更新(通过SqlDataAdapter的Update()方法)。

DataAdapter就像一个搬运工一样,查询数据的时候,它在数据库中查询并将查询结果搬给DataSet,当用户对DataSet中的数据执行了增、删、改操作(即DataSet中的数据发生变化)

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Mongodb对应sql操作 下一篇配置mongodb语句

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Linux_百度百科 (2025-12-26 12:51:52)
·Shell 流程控制 | 菜 (2025-12-26 12:51:49)
·TCP/UDP协议_百度百科 (2025-12-26 12:20:11)
·什么是TCP和UDP协议 (2025-12-26 12:20:09)
·TCP和UDP详解 (非常 (2025-12-26 12:20:06)