ADO.NET 概述
- Connections. 用于连接和管理针对数据库的事务。
- Commands. 用于发出针对数据库的SQL指令。
- DataReaders. 用于从SQL Server数据源读取只进流的数据记录。
- DataSets. 用于针对结构型数据,XML数据和关系型数据的存储,远程处理和编程。
- DataAdapters. 用于推送数据到DataSet,并针对数据库协调数据。
Connections用于和数据库“沟通”,并且被声明为特定的提供程序级别,例如SQLConnection。Commands扫描连接然后结果集以流的形式被返回,这种流可以被DataReader对象读取,或者推入DataSet对象。
下面的例子演示了如何创建一个连接对象。Connections可以通过调用Open方法被显式打开,或者使用DataAdapter的时候被隐式打开。
若要确保连接始终关闭,请在 using 块内部打开连接,如下面的代码段所示。 这样可确保在代码退出代码块时自动关闭连接。
using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); // Do work here; connection closed on following line. }
下面的示例创建一个 SqlConnection、一个 SqlCommand 和一个 SqlDataReader。 该示例读取所有数据,并将其写到控制台。 最后,示例在退出 Using 代码块时先后关闭 SqlDataReader 和 SqlConnection。
private static void ReadOrderData(string connectionString) { string queryString = "SELECT OrderID, CustomerID FROM dbo.Orders;"; using (SqlConnection connection = new SqlConnection( connectionString)) { SqlCommand command = new SqlCommand( queryString, connection); connection.Open(); SqlDataReader reader = command.ExecuteReader(); try { while (reader.Read()) { Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1])); } } finally { // Always call Close when done reading. reader.Close(); } } }
下面的示例创建一个 SqlConnection、一个 SqlCommand 和一个 SqlDataReader。 该示例读取全部数据,并将这些数据写到控制台窗口。 随后此代码关闭 SqlDataReader。 SqlConnection 在 using 代码块的结尾处自动关闭。
using System; using System.Data; using System.Data.SqlClient; class Program { static void Main() { string str = "Data Source=(local);Initial Catalog=Northwind;" + "Integrated Security=SSPI"; ReadOrderData(str); } private static void ReadOrderData(string connectionString) { string queryString = "SELECT OrderID, CustomerID FROM dbo.Orders;"; using (SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand command = new SqlCommand(queryString, connection); connection.Open(); SqlDataReader reader = command.ExecuteReader(); // Call Read before accessing data. while (reader.Read()) { ReadSingleRow((IDataRecord)reader); } // Call Close when done reading. reader.Close(); } } private static void ReadSingleRow(IDataRecord record) { Console.WriteLine(String.Format("{0}, {1}", record[0], record[1])); } }
下面的示例使用 SqlCommand、SqlDataAdapter 和 SqlConnection 从数据库中选择记录,并用选定的行填充 DataSet。 然后返回已填充的 DataSet。 为完成此任务,向该方法传递一个已初始化的 DataSet、一个连接字符串和一个查询字符串,后者是一个 Transact-SQL SELECT 语句。
private static DataSet SelectRows(DataSet dataset, string connectionString,string queryString) { using (SqlConnection connection = new SqlConnection(connectionString)) { SqlDataAdapter adapter = new SqlDataAdapter(); adapter.SelectCommand = new SqlCommand( queryString, connection); adapter.Fill(dataset); return dataset; } }

- ADO.NET是适合于.NET框架的改进版的ADO。
- ADO.NET是在多层架构、无状态性与XML的情况下诞生的。DataSet和DataAdapter2个对象提供这些场景。
- ADO.NET可以被用于从流获取数据,或者缓存用于更新的数据。
- 在文档里有更多关于ADO.NET的资料。
- 请记住,你可以直接对数据库执行命令以便插入、更新,与删除数据。你没有必要为了插入、更新、或删除数据把它放入DataSet。
- 同样,你可以使用DataSet绑定到数据,浏览数据,以及操作数据关联。
原文地址:
http://quickstarts.asp.net/QuickStartv20/howto/doc/adoplus/overviewcontents.aspx