ado.net详细研究(一)

最近阅读了 wrox 的高效掌握 ADO.NET ,有所感触,希望与大家分享。第一次写文章,不好请谅解。

第一篇: ADO.NET 的概念

ADO.NET 中间包含以下常见类:

· Connection

· Command

· DataAdapter

· DataReader

· DataSet

1 Connection 类
数据库 Connection 类提供与数据库的连接。 .net 里面有 OleDbConnection 类和 SqlConnection 类,分别针对不同的数据库。 SqlConnection 针对 sql server 7.0 或者以上版本。

2 Command 类
数据库 Command 类是数据库命令的封装。这个命令可以是 Sql 语句或者存储过程。这个类也有一个与具体提供者相关的前缀,如 OleDb 或者 Sql 。所有 Command 类必须实现一些属性,用来更改 Command 的文本和类型,参数,超时以及事务等。另外 Comand 必须实现一些方法,以便执行 Command 和返回信息。

3 DataAdapter 类
DataAdarpter 一般是结合 DataSet 使用,那 DataSet “连接”到数据源中。
本质上 DataAdapter 是容器,含有 4 个预先配置好的 Command 实例,即 SelectCommand,InsertCommand,DeleteCommand,UpdateCommand 。这 4 个 command 实例将提供 DataSet 与数据库之间的操作。

4 DataReader 类
使用 DataReader 可以实现对数据源中的数据高速、只向前的访问。同时 DataReader 是一个依赖连接的对象,这意味着你使用它的时候必须保持数据库连接是打开的。

5 DataSet 类
相对复杂但是功能强大的类。后面具体介绍。

下面使用实例演示基本操作(我们使用 sql server 数据库)。

using System;

using System.Data;

using System.Data.SqlClient;

namespace test101

{

///

1<summary>
2
3///  Class1  的摘要说明。 
4
5///  </summary>

class Class1

{

///

1<summary>
2
3///  应用程序的主入口点。 
4
5///  </summary>

[STAThread]

static void Main( string [] args)

{

//

// TODO: 在此处添加代码以启动应用程序

//

SqlConnection conn = new SqlConnection("server = joycode;Initial Catalog = Northwind; User Id = sa;Password = 87345587;");
conn.Open();
//上面两行代码新建一个SqlConnection对象conn,并把数据库连接字符串赋给其构造函数并通过Open方法打开数据库连接。

SqlCommand cmd = conn.CreateCommand();//通过conn的CreateCommand方法建立一个SqlCommand
cmd.CommandText = "select top 5 * from Customers";//设置cmd对象的命令是读取数据库汇总前5条信息
cmd.CommandType = CommandType.Text;//设置cmd的类型是sql语句,也就是默认的类型
//当然我们可以使用cmd.CommandType = CommandType.StoredProcedure指定命令类型为存储过程。
//下面的代码使用cmd的ExecuteReader方法新建一个SqlDataReader对象。
//注意:DataReader没有自己的构着函数,只能通过cmd的ExecuteReader新建。
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
string output;
while(reader.Read())
{
output = string.Format("Customer {0} : {1} works for {2}",
reader.GetString(0),reader.GetString(1),reader.GetString(2));//读取信息并显示。后面我们将专门介绍DataReader类
Console.WriteLine(output);
}
}
}
}

界面如下:

下一篇文章我们将详细研究DataReader类

Published At
Categories with Web编程
Tagged with
comments powered by Disqus