ADO.NET技术主要包括Connection、Command、DataReader、DataAdapter、DataSet和DataTable等6个对象,下面对这6个对象进行简单的介绍:
(1)Connection对象的主要功能是与数据库进行连接(事物处理也使用此对象)。(2)Command对象主要用于返回数据、修改数据、运行存储过程以及发送或检索参数信息的数据库命令。(3)DataReader对象主要功能是以只进流的方式从数据中读取行。(4)DataAdapter对象主要功能是将数据库中的内容填充到DataSet对象,在修改DataSet对象中的数据后还可以将修改信息通知数据库,使DataSet对象中的数据与数据库中的数据保持一致。(5)DataSet对象是ADO.NET的核心概念,它是支持ADO.NET断开式、分布式数据方案的核心对象。DataSet对象是一个数据库容器,可以把它当作是存在于内存中的数据库,无论数据源是什么,它都会提供一致的关系编程模型。(6)DataTable可以理解为内存中的数据表。形象地说明了ADO.NET中的每个对象的作用。
(1)数据库可以比作水库,存储了大量的数据。(2)Connection对象可以比作进水笼头,只有打开进水笼头后抽水机才可以抽到水。(3)Command对象可以比作抽水机,打开进水笼头,然后再打开抽水机,水会被送到用户家里。(4)DataReader对象可以比作输水管道,打开进水笼头,然后再打开抽水机,水会被送到用户家里。(5)DataAdapter对象可以比作输水管道,打开进水笼头,通过自己的发动机来抽水,水会被送到自己的水场中保存,以备后期使用。(6)DataSet对象可以比作自来水场,当自来水场的水被抽水机装满后,即使关掉水笼头(断开数据库连接),自来水场还是有水可以使用的。(7)DataTable对象可以比作自来水场中的水池,自来水场由很多水池组成。摘自C#相关书籍
ADO.NET 使您能够创建 DataTable 对象并将其添加到现有 DataSet 中。 可以使用 PrimaryKey 和 Unique 属性为 DataTable 设置约束信息。
DataSet customerOrders = new DataSet("CustomerOrders");DataTable ordersTable = customerOrders.Tables.Add("Orders");DataColumn pkOrderID = ordersTable.Columns.Add("OrderID", typeof(Int32));ordersTable.Columns.Add("OrderQuantity", typeof(Int32));ordersTable.Columns.Add("CompanyName", typeof(string));ordersTable.PrimaryKey = new DataColumn[] { pkOrderID };
区分大小写
DataSet 中可以存在两个或两个以上的同名但是大小写不同的表或关系。 在这种情况下,通过名称对表和关系的引用将区分大小写。 例如,如果 DataSet dataSet 包含表 Table1 和 table1,则将通过名称将 Table1 作为dataSet.Tables["Table1"] 来引用,而将 table1 作为 dataSet.Tables["table1"] 来引用。 如果试图将其中任一个表作为 dataSet.Tables["TABLE1"] 来引用,则会生成异常。
如果只有一个具有特定名称的表或关系,则区分大小写行为不适用。 例如,如果 DataSet 只包含 Table1,则可以使用 dataSet.Tables["TABLE1"] 来引用。