ADO.NET经过长时间的发展,很多用户都很了解ADO.NET了,这里我发表一下个人理解,和大家讨论讨论。ADO.NET使您能够创建 DataTable 对象并将其添加到现有 ADO.NET DataSet 中。可以使用 PrimaryKey 和 Unique 属性为 DataTable 设置约束信息。
以下示例构造一个 ADO.NET DataSet,将一个新的 DataTable 对象添加到该 ADO.NET DataSet 中,然后将三个 DataColumn 对象添加到该表中。***,该代码将一个列设置为主键列。
Visual Basic
- Dim customerOrders As ADO.NET DataSet = New ADO.NET DataSet("CustomerOrders")
- Dim ordersTable As DataTable = customerOrders.Tables.Add("Orders")
- Dim pkOrderID As DataColumn = ordersTable.Columns.Add( _
- "OrderID", Type.GetType("System.Int32"))
- ordersTable.Columns.Add("OrderQuantity", Type.GetType("System.Int32"))
- ordersTable.Columns.Add("CompanyName", Type.GetType("System.String"))
- ordersTable.PrimaryKey = New DataColumn() {pkOrderID}
C#
- ADO.NET DataSet customerOrders = new ADO.NET 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 };
#T#区分大小写
ADO.NET DataSet 中可以存在两个或两个以上的同名但是大小写不同的表或关系。在这种情况下,通过名称对表和关系的引用将区分大小写。例如,如果 ADO.NET DataSet ADO.NET DataSet 包含表 Table1 和 table1,则将通过名称将 Table1 作为 ADO.NET DataSet.Tables["Table1"] 来引用,而将 table1 作为 ADO.NET DataSet.Tables["table1"] 来引用。如果试图将其中任一个表作为 ADO.NET DataSet.Tables["TABLE1"] 来引用,则会生成异常。
如果只有一个具有特定名称的表或关系,则区分大小写行为不适用。例如,如果 ADO.NET DataSet 只包含 Table1,则可以使用 ADO.NET DataSet.Tables["TABLE1"] 来引用。ADO.NET DataSet 的 CaseSensitive 属性不影响此行为。CaseSensitive 属性应用于 ADO.NET DataSet 中的数据,并会影响排序、搜索、筛选、执行约束,等等。
命名空间支持
在 2.0 之前的 ADO.NET 版本中,两个表即使处于不同的命名空间中也不能同名。ADO.NET 2.0 中取消了此限制。ADO.NET DataSet 可以包含具有相同 TableName 属性值但是具有不同 Namespace 属性值的两个表。