关于ADO.Net的文章在网上有很多,我在这里只是对于我今天所接触的有关Ado.NET的Connected 和 Disconnected的知识做一个小结。如果我理解有错,还望大家来更正。
对于ADO.NET的Connected和Disconnected的初步认识
Connected (连接模式) 和 Disconnected (非连接模式) 是ADO.NET提供的二种访问数据库的模式。其中Disconnected模式是ADO.NET新提供的,在ADO中,并没有这一种连接模式。既然能作为一个新的连接模式出现在.NET的大家庭里,当然有其过人之处,我们稍后将会讨论它的优点。
Connected 模式
Connected 模式主要是为数据源提供了forward-only和read-only二种数据访问模式以及执行数据命令的能力。我们以代码来解释它的工作流程:
…………..
string connStr = “server = myServer;
database = myDatabase;
Integrated Security = SSPI;”;
string insertQuery =
“INSERT INTO Customers (CustomerID, CompanyName)
Values (‘Nwind’, ‘Northwind Traders’);
SqlConnection conDB = new SqlConnection (connStr);
SqlCommand cmd = new SqlCommand(insertQuery);
cmd.Connection = conDB;
//连接数据库
conDB.Open()
//处理数据
cmd.ExecuteNonQuery();
//关闭数据库
conDB.Close();
从上面的例子可以看出connected模式是指在数据库连接时,进行数据的处理,处理完后,将数据库关闭。而这种模式的好处在于能够很好的进行金融处理。例如数据库含有多个数据表,数据列/行等等。
Disconnected 模式
Disconnected模式是ADO.NET重点推荐的连接模式。它的核心是使用一个DataSet(数据集)来将数据存储下来,以能够在不连接数据库的情况下对数据进行处理。DataSet简单来说是一个在内存中的完全独立与原始数据的数据库。它是由一组Table(表),Column(列),Row(行),Constraint(约束)和关系(Relation)组成。下面是DataSet的模型图:
<<此图转自Microsoft ADO.NET Step by Step, p7>>
大概理解了DataSet,同样,我们来用实例理解Disconnected 模式。
using System.Data.SqlClient;
………….
string connStr = “server = myServer;
database = myDatabase;
Integrate Security = SSPI;”;
SqlConnection conDB = new SqlConnection(connStr);
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(
“Select * From Suppliers”, conDB);
//连接数据库
conDB.Open();
//创建DataSet
DataSet ds = new DataSet(“Customers”);
//将数据填入DataSet
adapter.Fill(ds);
//关闭数据库
conDB.Close();
string criteria = “Surname = Gates”;
DataRow[] matchRows = ds.Tables[“Customers”].Select(criteria);
Foreach (DataRow row in matchRows)
{
string forename = row[“Forename”];
string surname = row[“Surname”];
Console.WriteLine(“Customer “+forename+” ”+surname);
}
由上面的例子可以看出这个模式与connected 模式的不同之处。它是在将数据存入到DataSet(通过DataAdapter)后,即将连接中断,然后再进行数据处理。我们也可以再将数据库打开,并利用Adapter的Update方法,进行更新数据库。
Disconnected模式大大提高了数据库的处理性能,我们可以在数据库没有连接的情况下浏览数据库,查找信息等数据处理,我们同时也可以决定我们更新数据库的时间。我们不需要担心数据源在哪,数据均以xml的形式存储在内存中,而我们只需要利用一些简单的方法即可以使用这些数据,这种模式给我们提供了很大的可升级性与灵活性。也因此,这个模式被ADO.NET推荐为重点使用的模式。
上面就是我对今天学习ADO.NET的一个小的总结,如果出现任何的错误,请大家帮忙指正。非常感谢。
-------------------------------------------------------------
题外问题:
我近日在提问区问了一个有关三层架构的问题,可是好像很少老鸟会去提问区逛,所以我厚厚脸皮,把问题在这里再贴一次,希望有老鸟们能帮帮我。谢谢
问题:
在做一个project的时候,project需要用到三层架构。
我的想法是:
表现层用 ASP.NET,
商业层我用了Web Service,
那么数据层呢?我是直接在Web Service中写,还是说新建一个project,如果新建 project,又应该建哪种project呢?在写数据层的时候,又大概是个什么结构呢?我真是没主意了,因为是自学,所以我想我现在是迷失了方向,希望大家能指导一下我。谢谢了。
原问题地址:http://www.cnblogs.com/rayinuk/archive/2005/02/12/103867.html