ADO.NET对象的详解

1. Connection 类
和数据库交互,必须链接它。链接帮助指明数据库服务器、数据库名字、用户名、密码,和链接数据库所须要的其它参数。Connection对象会被Command对象使用,这样就可以知道是在哪一个数据源上面执行命令。 
属性:
CommandTimeout
这义了使用 Execute 方法运行一条 SQL 命令的最长时限,可以中断并产生错误。默认值为30秒,设定为0表示没有限制
ConnectionString
设定链接数据源的信息,包括 FlieName、Password、Userld、DataSource、Provider 等参数。
ConnectionTimeout
设置在终止尝试和产生错误前创建数据库链接期间所等待的时间,该属性设置或返回指示等待链接打开的时间的长整型值(单位为秒),默认值为15。若是将该属性设置为0,ADO 将无限等待直到链接打开。
DefaultDatabase
定义链接默认数据库
Mode
创建链接以前,设定链接的读写方式,决定是否可更改目前数据。0 一 不设定(默认)、1 一 只读、2 一 只写、3 一 读写。
State
读取当前连接对象的状态,取0表示关闭,1表示打开。
 
方法:
Open
打开一个数据库链接
ChangeDatabase
改变当前链接的数据库。须要一个有效的数据库名称
Close
关闭数据库链接。使用该方法关闭一个打开的链接
CreateCommand
建立并返回一个与该链接关联的SqlCommand对象
Dispose
释放资源
 
实例:
 //建立链接数据库的字符串
        string SqlStr = "Server=MRWXK\\MRWXK;User Id=sa;Pwd=;DataBase=db_ASPNET";
        //建立SqlConnection对象
        SqlConnection con = new SqlConnection(SqlStr);
        con.Open();//打开数据库的链接
        if (con.State == System.Data.ConnectionState.Open)
        {
            Response.Write("SQL Server数据库链接开启!<p/>");
            //关闭数据库的链接
            con.Close();
        }
        if(con.State==System.Data.ConnectionState.Closed)
        {
            Response.Write("SQL Server数据库链接关闭!<p/>");
        }

2. Command对象 
成 功与数据创建链接后,就能够用Command对象来执行查询、修改、插入、删除等命令;Command对象经常使用的方法有ExecuteReader()方 法、ExecuteScalar()方法和ExecuteNonQuery()方法;插入数据可用ExecuteNonQuery()方法来执行插入命 令。
属性:

Connectionsql

指定Command对象所使用的Connection对象。数据库

CommandType数组

指定Command对象的类型,有3种选择:缓存

1 Text:表示Command对象用于执行SQL语句。服务器

2 StoredProcedure:表示Command对象用于执行存储过程。架构

3 TableDirect:表示Command对象用于直接处理某个表。ide

CommandType属性的默认值为Text。性能

CommandTextspa

根据CommandType属性的取值来决定CommandText属性的取值,分为3种状况对象

1 若是CommandType属性取值为Text,则CommandText属性指出SQL语句的内容。

2 若是CommandType属性取值为StoredProcedure,则CommandText属性指出存储过程的名称。

3 若是CommandType属性取值为TableDirect,则CommandText属性指出表的名称。

CommandText属性的默认值为SQL语句。

CommandTimeout

指定Command对象用于执行命令的最长延迟时间,以秒为单位,若是在指定时间内仍不能开始执行命令,则返回失败信息。

默认值为30秒。

Parameters

指定一个参数集合。

方法:

ExecuteReader

执行查询操做,返回一个具备多行多列的结果集。

ExecuteScalar

执行查询操做,返回单个值。这个方法一般用来执行那些用到count()或者sum的命令。

ExecuteNonQuery

执行插入、修改或删除操做,返回本次操做受影响的行数。

3. DataReader类
许多数据操做要求开发人员只是读取一串数据。DataReader对象容许开发人员得到从Command对象的SELECT语句获得的结果。考虑性能的因素,从DataReader返回的数据都是快速的且只是“向前”的数据流。这意味着开发人员只能按照必定的顺序从数据流中取出数据。这对于速度来讲是有好处的,可是若是开发人员须要操做数据,更好的办法是使用DataSet。
属性:

Depth

设置阅读器浓度。对于SqlDataReader类,它老是返回0

FieldCount

获取当前行的列数

Item

索引器属性,以原始格式得到一列的值

IsClose

得到一个代表数据阅读器有没有关闭的一个值

RecordsAffected

获取执行SQL语句所更改、添加或删除的行数

方法:

Read

使DataReader对象前进到下一条记录(若是有)

Close

关闭DataReader对象。注意,关闭阅读器对象并不会自动关闭底层链接

Get

用来读取数据集的当前行的某一列的数据数据

NextResult

当读取批处理 SQL 语句的结果时,使数据读取器前进到下一个结果

实例:
//链接字符串 
string strSQL = "SELECT SName,SClass from Student where SNum='" + DropDownList1.SelectedValue + "'";
        SqlCommand oCmd;//链接数据库命令
        SqlDataReader oDR = null;
        oCmd = new SqlCommand();
        StudentDA.GetBDConnection();
        oCmd.Connection = StudentDA.aConnection;
        oCmd.Connection.Open();
        oCmd.CommandText = strSQL;
        oDR = oCmd.ExecuteReader();
        while (oDR.Read())
        {
            txtSName.Text = oDR["SName"].ToString();
            txtClass.Text = oDR["SClass"].ToString();
        }
        StudentDA.CloseSqlDataReader(oDR);
        StudentDA.CloseConnection();
4. DataAdapter类
某些时候开发人员使用的数据主要是只读的,而且开发人员不多须要将其改变至底层的数据源。一样一些状况要求在内存中缓存数据,以此来减小并不改变的数据被数 据库调用的次数。DataAdapter经过断开模型来帮助开发人员方便的完成对以上状况的处理。当在一单批次的对数据库的读写操做的持续的改变返回至数 据库的时候,DataAdapter填充(fill)DataSet对象。DataAadapter包含对链接对象以及当对数据库进行读取或者写入的时候 自动的打开或者关闭链接的引用。另外,DataAdapter包含对数据的SELECT、INSERT、UPDATE和DELETE操做的 Command 对象引用。开发人员将为DataSet中的每个Table都定义DataAadapter,它将为开发人员照顾全部与数据库的链接。因此开发人员将作的工做是告诉DataAdapter何时装载或者写入到数据库。
它的主要成员是DataSet和DataTable,其余成员能够简单理解成这两个类的组成类。下面主要介绍DataSet和DataTable。
属性:

DeleteCommand

获取或者设置用于在数据源中删除记录的命令

InsertCommand

获取或设置用于将新纪录插入到数据源中的命令

SelectCommand

获取或者设置用于在数据源中选择记录的命令

UpdateCommand

获取或者设置用于在数据源中更新记录的命令
方法:

Dispose

删除该对象

Fill

用从源数据读取的数据行填充至DataSet对象中

FillSchema

将一个DataTable加入到指定的DataSet中,并配置表的模式

GetFillParameters

返回一个用于SELECT命令的DataParameter对象组成的数组

Update

在DataSet对象中的数据有所改动后更新数据源。

实例:(本例主要是绑定到Gridview上)
 string sqlstr = "select TNum,TName,TSex,TBirth,TProf,TEdu,TRemark,TStatus,TPassword from Teacher";
        SqlConnection sqlcon = new SqlConnection(StudentDA.conStr);
        SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
        DataSet myds = new DataSet();
        sqlcon.Open();
        myda.Fill(myds, "Teacher");
        GridView1.DataSource = myds;
        GridView1.DataBind();
        StudentDA.CloseConnection();
 
6. DataSet对象
DataSet 对象是数据在内存中的表示形式。它包括多个DataTable对象,而DataTable包含列和行,就象一个普通的数据库中的表。开发人员甚至可以定义 表之间的关系来建立主从关系。DataSet是在特定的场景下使用,帮助管理内存中的数据并支持对数据的断开操做的。DataSet是被全部DataProviders使用的对象,所以它并不像Data Provider同样须要特别的前缀。
属性:
Tables
数据集中包含的数据表的集合。

Ralations

数据集中包含的数据联系的集合。
DataSetName
用于获取或设置当前数据集的名称
HasErrors 用于判断当前数据集中是否存在错误
方法:
Clear

清除数据集包含的全部表中的数据,但不清除表结构。

Clone

复制DataSet的结构,包括全部的DataTable架构关系和约束。不复制任何数据。

Copy

复制DataSet的结构和数据

AcceptChanges

提自加载此DataSet或上次调用以来对其进行的修改
 
7. DataTable类
DataTable与数据库中的table很类似,你几乎彻底能够按照数据库中的table来理解DataTable,包括行和列等等。反正你就按照table来理解它就对了。最后,简单说一下这些对喜好对象之间的关系。Connection 对象提供数据来源的链接。Command 对象可以让开发人员存取操做数据库的命令,以便传回数据、修改数据、执行预存程序 (Stored Procedure),而且传送参数信息。DataReader则可提供来自数据来源的高效能数据流。最后,DataAdapter会提供 DataSet 对象与数据来源之间的桥接器 (Bridge)。DataAdapter 会使用 Command 对象,在数据来源处执行 SQL 命令,以便将数据载入 DataSet,而且也能将 DataSet 内的数据变动更新到数据库。
相关文章
相关标签/搜索