'------------------------------------------------------------------------------ ' ' This code was generated by a tool. ' Runtime Version: 1.0.3705.209 ' ' Changes to this file may cause incorrect behavior and will be lost if ' the code is regenerated. ' '------------------------------------------------------------------------------ Option Strict Off Option Explicit On Imports System Imports System.Data Imports System.Runtime.Serialization Imports System.Xml _ Public Class Northwind Inherits DataSet Private tableCustomers As CustomersDataTable Private tableOrders As OrdersDataTable Private tableOrder_Details As Order_DetailsDataTable Private relationCustomersOrders As DataRelation Private relationOrdersOrder_Details As DataRelation Public Sub New() MyBase.New Me.InitClass Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged AddHandler Me.Tables.CollectionChanged, schemaChangedHandler AddHandler Me.Relations.CollectionChanged, schemaChangedHandler End Sub Protected Sub New(ByVal info As SerializationInfo, ByVal context As StreamingContext) MyBase.New Dim strSchema As String = CType(info.GetValue("XmlSchema", GetType(System.String)),String) If (Not (strSchema) Is Nothing) Then Dim ds As DataSet = New DataSet ds.ReadXmlSchema(New XmlTextReader(New System.IO.StringReader(strSchema))) If (Not (ds.Tables("Customers")) Is Nothing) Then Me.Tables.Add(New CustomersDataTable(ds.Tables("Customers"))) End If If (Not (ds.Tables("Orders")) Is Nothing) Then Me.Tables.Add(New OrdersDataTable(ds.Tables("Orders"))) End If If (Not (ds.Tables("Order_Details")) Is Nothing) Then Me.Tables.Add(New Order_DetailsDataTable(ds.Tables("Order_Details"))) End If Me.DataSetName = ds.DataSetName Me.Prefix = ds.Prefix Me.Namespace = ds.Namespace Me.Locale = ds.Locale Me.CaseSensitive = ds.CaseSensitive Me.EnforceConstraints = ds.EnforceConstraints Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) Me.InitVars Else Me.InitClass End If Me.GetSerializationData(info, context) Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged AddHandler Me.Tables.CollectionChanged, schemaChangedHandler AddHandler Me.Relations.CollectionChanged, schemaChangedHandler End Sub _ Public ReadOnly Property Customers As CustomersDataTable Get Return Me.tableCustomers End Get End Property _ Public ReadOnly Property Orders As OrdersDataTable Get Return Me.tableOrders End Get End Property _ Public ReadOnly Property Order_Details As Order_DetailsDataTable Get Return Me.tableOrder_Details End Get End Property Public Overrides Function Clone() As DataSet Dim cln As Northwind = CType(MyBase.Clone,Northwind) cln.InitVars Return cln End Function Protected Overrides Function ShouldSerializeTables() As Boolean Return false End Function Protected Overrides Function ShouldSerializeRelations() As Boolean Return false End Function Protected Overrides Sub ReadXmlSerializable(ByVal reader As XmlReader) Me.Reset Dim ds As DataSet = New DataSet ds.ReadXml(reader) If (Not (ds.Tables("Customers")) Is Nothing) Then Me.Tables.Add(New CustomersDataTable(ds.Tables("Customers"))) End If If (Not (ds.Tables("Orders")) Is Nothing) Then Me.Tables.Add(New OrdersDataTable(ds.Tables("Orders"))) End If If (Not (ds.Tables("Order_Details")) Is Nothing) Then Me.Tables.Add(New Order_DetailsDataTable(ds.Tables("Order_Details"))) End If Me.DataSetName = ds.DataSetName Me.Prefix = ds.Prefix Me.Namespace = ds.Namespace Me.Locale = ds.Locale Me.CaseSensitive = ds.CaseSensitive Me.EnforceConstraints = ds.EnforceConstraints Me.Merge(ds, false, System.Data.MissingSchemaAction.Add) Me.InitVars End Sub Protected Overrides Function GetSchemaSerializable() As System.Xml.Schema.XmlSchema Dim stream As System.IO.MemoryStream = New System.IO.MemoryStream Me.WriteXmlSchema(New XmlTextWriter(stream, Nothing)) stream.Position = 0 Return System.Xml.Schema.XmlSchema.Read(New XmlTextReader(stream), Nothing) End Function Friend Sub InitVars() Me.tableCustomers = CType(Me.Tables("Customers"),CustomersDataTable) If (Not (Me.tableCustomers) Is Nothing) Then Me.tableCustomers.InitVars End If Me.tableOrders = CType(Me.Tables("Orders"),OrdersDataTable) If (Not (Me.tableOrders) Is Nothing) Then Me.tableOrders.InitVars End If Me.tableOrder_Details = CType(Me.Tables("Order_Details"),Order_DetailsDataTable) If (Not (Me.tableOrder_Details) Is Nothing) Then Me.tableOrder_Details.InitVars End If Me.relationCustomersOrders = Me.Relations("CustomersOrders") Me.relationOrdersOrder_Details = Me.Relations("OrdersOrder_Details") End Sub Private Sub InitClass() Me.DataSetName = "Northwind" Me.Prefix = "" Me.Namespace = "http://tempuri.org/Northwind.xsd" Me.Locale = New System.Globalization.CultureInfo("en-US") Me.CaseSensitive = false Me.EnforceConstraints = true Me.tableCustomers = New CustomersDataTable Me.Tables.Add(Me.tableCustomers) Me.tableOrders = New OrdersDataTable Me.Tables.Add(Me.tableOrders) Me.tableOrder_Details = New Order_DetailsDataTable Me.Tables.Add(Me.tableOrder_Details) Dim fkc As ForeignKeyConstraint fkc = New ForeignKeyConstraint("CustomersOrders", New DataColumn() {Me.tableCustomers.CustomerIDColumn}, New DataColumn() {Me.tableOrders.CustomerIDColumn}) Me.tableOrders.Constraints.Add(fkc) fkc.AcceptRejectRule = AcceptRejectRule.None fkc.DeleteRule = Rule.Cascade fkc.UpdateRule = Rule.Cascade fkc = New ForeignKeyConstraint("OrdersOrder_Details", New DataColumn() {Me.tableOrders.OrderIDColumn}, New DataColumn() {Me.tableOrder_Details.OrderIDColumn}) Me.tableOrder_Details.Constraints.Add(fkc) fkc.AcceptRejectRule = AcceptRejectRule.None fkc.DeleteRule = Rule.Cascade fkc.UpdateRule = Rule.Cascade Me.relationCustomersOrders = New DataRelation("CustomersOrders", New DataColumn() {Me.tableCustomers.CustomerIDColumn}, New DataColumn() {Me.tableOrders.CustomerIDColumn}, false) Me.Relations.Add(Me.relationCustomersOrders) Me.relationOrdersOrder_Details = New DataRelation("OrdersOrder_Details", New DataColumn() {Me.tableOrders.OrderIDColumn}, New DataColumn() {Me.tableOrder_Details.OrderIDColumn}, false) Me.Relations.Add(Me.relationOrdersOrder_Details) End Sub Private Function ShouldSerializeCustomers() As Boolean Return false End Function Private Function ShouldSerializeOrders() As Boolean Return false End Function Private Function ShouldSerializeOrder_Details() As Boolean Return false End Function Private Sub SchemaChanged(ByVal sender As Object, ByVal e As System.ComponentModel.CollectionChangeEventArgs) If (e.Action = System.ComponentModel.CollectionChangeAction.Remove) Then Me.InitVars End If End Sub Public Delegate Sub CustomersRowChangeEventHandler(ByVal sender As Object, ByVal e As CustomersRowChangeEvent) Public Delegate Sub OrdersRowChangeEventHandler(ByVal sender As Object, ByVal e As OrdersRowChangeEvent) Public Delegate Sub Order_DetailsRowChangeEventHandler(ByVal sender As Object, ByVal e As Order_DetailsRowChangeEvent) _ Public Class CustomersDataTable Inherits DataTable Implements System.Collections.IEnumerable Private columnCustomerID As DataColumn Private columnCompanyName As DataColumn Private columnContactName As DataColumn Private columnContactTitle As DataColumn Private columnAddress As DataColumn Private columnCity As DataColumn Private column_Region As DataColumn Private columnPostalCode As DataColumn Private columnCountry As DataColumn Private columnPhone As DataColumn Private columnFax As DataColumn Friend Sub New() MyBase.New("Customers") Me.InitClass End Sub Friend Sub New(ByVal table As DataTable) MyBase.New(table.TableName) If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then Me.CaseSensitive = table.CaseSensitive End If If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then Me.Locale = table.Locale End If If (table.Namespace <> table.DataSet.Namespace) Then Me.Namespace = table.Namespace End If Me.Prefix = table.Prefix Me.MinimumCapacity = table.MinimumCapacity End Sub _ Public ReadOnly Property Count As Integer Get Return Me.Rows.Count End Get End Property Friend ReadOnly Property CustomerIDColumn As DataColumn Get Return Me.columnCustomerID End Get End Property Friend ReadOnly Property CompanyNameColumn As DataColumn Get Return Me.columnCompanyName End Get End Property Friend ReadOnly Property ContactNameColumn As DataColumn Get Return Me.columnContactName End Get End Property Friend ReadOnly Property ContactTitleColumn As DataColumn Get Return Me.columnContactTitle End Get End Property Friend ReadOnly Property AddressColumn As DataColumn Get Return Me.columnAddress End Get End Property Friend ReadOnly Property CityColumn As DataColumn Get Return Me.columnCity End Get End Property Friend ReadOnly Property _RegionColumn As DataColumn Get Return Me.column_Region End Get End Property Friend ReadOnly Property PostalCodeColumn As DataColumn Get Return Me.columnPostalCode End Get End Property Friend ReadOnly Property CountryColumn As DataColumn Get Return Me.columnCountry End Get End Property Friend ReadOnly Property PhoneColumn As DataColumn Get Return Me.columnPhone End Get End Property Friend ReadOnly Property FaxColumn As DataColumn Get Return Me.columnFax End Get End Property Public Default ReadOnly Property Item(ByVal index As Integer) As CustomersRow Get Return CType(Me.Rows(index),CustomersRow) End Get End Property Public Event CustomersRowChanged As CustomersRowChangeEventHandler Public Event CustomersRowChanging As CustomersRowChangeEventHandler Public Event CustomersRowDeleted As CustomersRowChangeEventHandler Public Event CustomersRowDeleting As CustomersRowChangeEventHandler Public Overloads Sub AddCustomersRow(ByVal row As CustomersRow) Me.Rows.Add(row) End Sub Public Overloads Function AddCustomersRow(ByVal CustomerID As String, ByVal CompanyName As String, ByVal ContactName As String, ByVal ContactTitle As String, ByVal Address As String, ByVal City As String, ByVal _Region As String, ByVal PostalCode As String, ByVal Country As String, ByVal Phone As String, ByVal Fax As String) As CustomersRow Dim rowCustomersRow As CustomersRow = CType(Me.NewRow,CustomersRow) rowCustomersRow.ItemArray = New Object() {CustomerID, CompanyName, ContactName, ContactTitle, Address, City, _Region, PostalCode, Country, Phone, Fax} Me.Rows.Add(rowCustomersRow) Return rowCustomersRow End Function Public Function FindByCustomerID(ByVal CustomerID As String) As CustomersRow Return CType(Me.Rows.Find(New Object() {CustomerID}),CustomersRow) End Function Public Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator Return Me.Rows.GetEnumerator End Function Public Overrides Function Clone() As DataTable Dim cln As CustomersDataTable = CType(MyBase.Clone,CustomersDataTable) cln.InitVars Return cln End Function Protected Overrides Function CreateInstance() As DataTable Return New CustomersDataTable End Function Friend Sub InitVars() Me.columnCustomerID = Me.Columns("CustomerID") Me.columnCompanyName = Me.Columns("CompanyName") Me.columnContactName = Me.Columns("ContactName") Me.columnContactTitle = Me.Columns("ContactTitle") Me.columnAddress = Me.Columns("Address") Me.columnCity = Me.Columns("City") Me.column_Region = Me.Columns("Region") Me.columnPostalCode = Me.Columns("PostalCode") Me.columnCountry = Me.Columns("Country") Me.columnPhone = Me.Columns("Phone") Me.columnFax = Me.Columns("Fax") End Sub Private Sub InitClass() Me.columnCustomerID = New DataColumn("CustomerID", GetType(System.String), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnCustomerID) Me.columnCompanyName = New DataColumn("CompanyName", GetType(System.String), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnCompanyName) Me.columnContactName = New DataColumn("ContactName", GetType(System.String), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnContactName) Me.columnContactTitle = New DataColumn("ContactTitle", GetType(System.String), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnContactTitle) Me.columnAddress = New DataColumn("Address", GetType(System.String), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnAddress) Me.columnCity = New DataColumn("City", GetType(System.String), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnCity) Me.column_Region = New DataColumn("Region", GetType(System.String), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.column_Region) Me.columnPostalCode = New DataColumn("PostalCode", GetType(System.String), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnPostalCode) Me.columnCountry = New DataColumn("Country", GetType(System.String), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnCountry) Me.columnPhone = New DataColumn("Phone", GetType(System.String), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnPhone) Me.columnFax = New DataColumn("Fax", GetType(System.String), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnFax) Me.Constraints.Add(New UniqueConstraint("NorthwindKey1", New DataColumn() {Me.columnCustomerID}, true)) Me.columnCustomerID.AllowDBNull = false Me.columnCustomerID.Unique = true Me.columnCompanyName.AllowDBNull = false End Sub Public Function NewCustomersRow() As CustomersRow Return CType(Me.NewRow,CustomersRow) End Function Protected Overrides Function NewRowFromBuilder(ByVal builder As DataRowBuilder) As DataRow Return New CustomersRow(builder) End Function Protected Overrides Function GetRowType() As System.Type Return GetType(CustomersRow) End Function Protected Overrides Sub OnRowChanged(ByVal e As DataRowChangeEventArgs) MyBase.OnRowChanged(e) If (Not (Me.CustomersRowChangedEvent) Is Nothing) Then RaiseEvent CustomersRowChanged(Me, New CustomersRowChangeEvent(CType(e.Row,CustomersRow), e.Action)) End If End Sub Protected Overrides Sub OnRowChanging(ByVal e As DataRowChangeEventArgs) MyBase.OnRowChanging(e) If (Not (Me.CustomersRowChangingEvent) Is Nothing) Then RaiseEvent CustomersRowChanging(Me, New CustomersRowChangeEvent(CType(e.Row,CustomersRow), e.Action)) End If End Sub Protected Overrides Sub OnRowDeleted(ByVal e As DataRowChangeEventArgs) MyBase.OnRowDeleted(e) If (Not (Me.CustomersRowDeletedEvent) Is Nothing) Then RaiseEvent CustomersRowDeleted(Me, New CustomersRowChangeEvent(CType(e.Row,CustomersRow), e.Action)) End If End Sub Protected Overrides Sub OnRowDeleting(ByVal e As DataRowChangeEventArgs) MyBase.OnRowDeleting(e) If (Not (Me.CustomersRowDeletingEvent) Is Nothing) Then RaiseEvent CustomersRowDeleting(Me, New CustomersRowChangeEvent(CType(e.Row,CustomersRow), e.Action)) End If End Sub Public Sub RemoveCustomersRow(ByVal row As CustomersRow) Me.Rows.Remove(row) End Sub End Class _ Public Class CustomersRow Inherits DataRow Private tableCustomers As CustomersDataTable Friend Sub New(ByVal rb As DataRowBuilder) MyBase.New(rb) Me.tableCustomers = CType(Me.Table,CustomersDataTable) End Sub Public Property CustomerID As String Get Return CType(Me(Me.tableCustomers.CustomerIDColumn),String) End Get Set Me(Me.tableCustomers.CustomerIDColumn) = value End Set End Property Public Property CompanyName As String Get Return CType(Me(Me.tableCustomers.CompanyNameColumn),String) End Get Set Me(Me.tableCustomers.CompanyNameColumn) = value End Set End Property Public Property ContactName As String Get Try Return CType(Me(Me.tableCustomers.ContactNameColumn),String) Catch e As InvalidCastException Throw New StrongTypingException("Cannot get value because it is DBNull.", e) End Try End Get Set Me(Me.tableCustomers.ContactNameColumn) = value End Set End Property Public Property ContactTitle As String Get Try Return CType(Me(Me.tableCustomers.ContactTitleColumn),String) Catch e As InvalidCastException Throw New StrongTypingException("Cannot get value because it is DBNull.", e) End Try End Get Set Me(Me.tableCustomers.ContactTitleColumn) = value End Set End Property Public Property Address As String Get Try Return CType(Me(Me.tableCustomers.AddressColumn),String) Catch e As InvalidCastException Throw New StrongTypingException("Cannot get value because it is DBNull.", e) End Try End Get Set Me(Me.tableCustomers.AddressColumn) = value End Set End Property Public Property City As String Get Try Return CType(Me(Me.tableCustomers.CityColumn),String) Catch e As InvalidCastException Throw New StrongTypingException("Cannot get value because it is DBNull.", e) End Try End Get Set Me(Me.tableCustomers.CityColumn) = value End Set End Property Public Property _Region As String Get Try Return CType(Me(Me.tableCustomers._RegionColumn),String) Catch e As InvalidCastException Throw New StrongTypingException("Cannot get value because it is DBNull.", e) End Try End Get Set Me(Me.tableCustomers._RegionColumn) = value End Set End Property Public Property PostalCode As String Get Try Return CType(Me(Me.tableCustomers.PostalCodeColumn),String) Catch e As InvalidCastException Throw New StrongTypingException("Cannot get value because it is DBNull.", e) End Try End Get Set Me(Me.tableCustomers.PostalCodeColumn) = value End Set End Property Public Property Country As String Get Try Return CType(Me(Me.tableCustomers.CountryColumn),String) Catch e As InvalidCastException Throw New StrongTypingException("Cannot get value because it is DBNull.", e) End Try End Get Set Me(Me.tableCustomers.CountryColumn) = value End Set End Property Public Property Phone As String Get Try Return CType(Me(Me.tableCustomers.PhoneColumn),String) Catch e As InvalidCastException Throw New StrongTypingException("Cannot get value because it is DBNull.", e) End Try End Get Set Me(Me.tableCustomers.PhoneColumn) = value End Set End Property Public Property Fax As String Get Try Return CType(Me(Me.tableCustomers.FaxColumn),String) Catch e As InvalidCastException Throw New StrongTypingException("Cannot get value because it is DBNull.", e) End Try End Get Set Me(Me.tableCustomers.FaxColumn) = value End Set End Property Public Function IsContactNameNull() As Boolean Return Me.IsNull(Me.tableCustomers.ContactNameColumn) End Function Public Sub SetContactNameNull() Me(Me.tableCustomers.ContactNameColumn) = System.Convert.DBNull End Sub Public Function IsContactTitleNull() As Boolean Return Me.IsNull(Me.tableCustomers.ContactTitleColumn) End Function Public Sub SetContactTitleNull() Me(Me.tableCustomers.ContactTitleColumn) = System.Convert.DBNull End Sub Public Function IsAddressNull() As Boolean Return Me.IsNull(Me.tableCustomers.AddressColumn) End Function Public Sub SetAddressNull() Me(Me.tableCustomers.AddressColumn) = System.Convert.DBNull End Sub Public Function IsCityNull() As Boolean Return Me.IsNull(Me.tableCustomers.CityColumn) End Function Public Sub SetCityNull() Me(Me.tableCustomers.CityColumn) = System.Convert.DBNull End Sub Public Function Is_RegionNull() As Boolean Return Me.IsNull(Me.tableCustomers._RegionColumn) End Function Public Sub Set_RegionNull() Me(Me.tableCustomers._RegionColumn) = System.Convert.DBNull End Sub Public Function IsPostalCodeNull() As Boolean Return Me.IsNull(Me.tableCustomers.PostalCodeColumn) End Function Public Sub SetPostalCodeNull() Me(Me.tableCustomers.PostalCodeColumn) = System.Convert.DBNull End Sub Public Function IsCountryNull() As Boolean Return Me.IsNull(Me.tableCustomers.CountryColumn) End Function Public Sub SetCountryNull() Me(Me.tableCustomers.CountryColumn) = System.Convert.DBNull End Sub Public Function IsPhoneNull() As Boolean Return Me.IsNull(Me.tableCustomers.PhoneColumn) End Function Public Sub SetPhoneNull() Me(Me.tableCustomers.PhoneColumn) = System.Convert.DBNull End Sub Public Function IsFaxNull() As Boolean Return Me.IsNull(Me.tableCustomers.FaxColumn) End Function Public Sub SetFaxNull() Me(Me.tableCustomers.FaxColumn) = System.Convert.DBNull End Sub Public Function GetOrdersRows() As OrdersRow() Return CType(Me.GetChildRows(Me.Table.ChildRelations("CustomersOrders")),OrdersRow()) End Function End Class _ Public Class CustomersRowChangeEvent Inherits EventArgs Private eventRow As CustomersRow Private eventAction As DataRowAction Public Sub New(ByVal row As CustomersRow, ByVal action As DataRowAction) MyBase.New Me.eventRow = row Me.eventAction = action End Sub Public ReadOnly Property Row As CustomersRow Get Return Me.eventRow End Get End Property Public ReadOnly Property Action As DataRowAction Get Return Me.eventAction End Get End Property End Class _ Public Class OrdersDataTable Inherits DataTable Implements System.Collections.IEnumerable Private columnOrderID As DataColumn Private columnCustomerID As DataColumn Private columnEmployeeID As DataColumn Private columnOrderDate As DataColumn Private columnRequiredDate As DataColumn Private columnShippedDate As DataColumn Private columnShipVia As DataColumn Private columnFreight As DataColumn Private columnShipName As DataColumn Private columnShipAddress As DataColumn Private columnShipCity As DataColumn Private columnShipRegion As DataColumn Private columnShipPostalCode As DataColumn Private columnShipCountry As DataColumn Friend Sub New() MyBase.New("Orders") Me.InitClass End Sub Friend Sub New(ByVal table As DataTable) MyBase.New(table.TableName) If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then Me.CaseSensitive = table.CaseSensitive End If If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then Me.Locale = table.Locale End If If (table.Namespace <> table.DataSet.Namespace) Then Me.Namespace = table.Namespace End If Me.Prefix = table.Prefix Me.MinimumCapacity = table.MinimumCapacity End Sub _ Public ReadOnly Property Count As Integer Get Return Me.Rows.Count End Get End Property Friend ReadOnly Property OrderIDColumn As DataColumn Get Return Me.columnOrderID End Get End Property Friend ReadOnly Property CustomerIDColumn As DataColumn Get Return Me.columnCustomerID End Get End Property Friend ReadOnly Property EmployeeIDColumn As DataColumn Get Return Me.columnEmployeeID End Get End Property Friend ReadOnly Property OrderDateColumn As DataColumn Get Return Me.columnOrderDate End Get End Property Friend ReadOnly Property RequiredDateColumn As DataColumn Get Return Me.columnRequiredDate End Get End Property Friend ReadOnly Property ShippedDateColumn As DataColumn Get Return Me.columnShippedDate End Get End Property Friend ReadOnly Property ShipViaColumn As DataColumn Get Return Me.columnShipVia End Get End Property Friend ReadOnly Property FreightColumn As DataColumn Get Return Me.columnFreight End Get End Property Friend ReadOnly Property ShipNameColumn As DataColumn Get Return Me.columnShipName End Get End Property Friend ReadOnly Property ShipAddressColumn As DataColumn Get Return Me.columnShipAddress End Get End Property Friend ReadOnly Property ShipCityColumn As DataColumn Get Return Me.columnShipCity End Get End Property Friend ReadOnly Property ShipRegionColumn As DataColumn Get Return Me.columnShipRegion End Get End Property Friend ReadOnly Property ShipPostalCodeColumn As DataColumn Get Return Me.columnShipPostalCode End Get End Property Friend ReadOnly Property ShipCountryColumn As DataColumn Get Return Me.columnShipCountry End Get End Property Public Default ReadOnly Property Item(ByVal index As Integer) As OrdersRow Get Return CType(Me.Rows(index),OrdersRow) End Get End Property Public Event OrdersRowChanged As OrdersRowChangeEventHandler Public Event OrdersRowChanging As OrdersRowChangeEventHandler Public Event OrdersRowDeleted As OrdersRowChangeEventHandler Public Event OrdersRowDeleting As OrdersRowChangeEventHandler Public Overloads Sub AddOrdersRow(ByVal row As OrdersRow) Me.Rows.Add(row) End Sub Public Overloads Function AddOrdersRow(ByVal parentCustomersRowByCustomersOrders As CustomersRow, ByVal EmployeeID As Integer, ByVal OrderDate As Date, ByVal RequiredDate As Date, ByVal ShippedDate As Date, ByVal ShipVia As Integer, ByVal Freight As Decimal, ByVal ShipName As String, ByVal ShipAddress As String, ByVal ShipCity As String, ByVal ShipRegion As String, ByVal ShipPostalCode As String, ByVal ShipCountry As String) As OrdersRow Dim rowOrdersRow As OrdersRow = CType(Me.NewRow,OrdersRow) rowOrdersRow.ItemArray = New Object() {Nothing, parentCustomersRowByCustomersOrders(0), EmployeeID, OrderDate, RequiredDate, ShippedDate, ShipVia, Freight, ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode, ShipCountry} Me.Rows.Add(rowOrdersRow) Return rowOrdersRow End Function Public Function FindByOrderID(ByVal OrderID As Integer) As OrdersRow Return CType(Me.Rows.Find(New Object() {OrderID}),OrdersRow) End Function Public Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator Return Me.Rows.GetEnumerator End Function Public Overrides Function Clone() As DataTable Dim cln As OrdersDataTable = CType(MyBase.Clone,OrdersDataTable) cln.InitVars Return cln End Function Protected Overrides Function CreateInstance() As DataTable Return New OrdersDataTable End Function Friend Sub InitVars() Me.columnOrderID = Me.Columns("OrderID") Me.columnCustomerID = Me.Columns("CustomerID") Me.columnEmployeeID = Me.Columns("EmployeeID") Me.columnOrderDate = Me.Columns("OrderDate") Me.columnRequiredDate = Me.Columns("RequiredDate") Me.columnShippedDate = Me.Columns("ShippedDate") Me.columnShipVia = Me.Columns("ShipVia") Me.columnFreight = Me.Columns("Freight") Me.columnShipName = Me.Columns("ShipName") Me.columnShipAddress = Me.Columns("ShipAddress") Me.columnShipCity = Me.Columns("ShipCity") Me.columnShipRegion = Me.Columns("ShipRegion") Me.columnShipPostalCode = Me.Columns("ShipPostalCode") Me.columnShipCountry = Me.Columns("ShipCountry") End Sub Private Sub InitClass() Me.columnOrderID = New DataColumn("OrderID", GetType(System.Int32), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnOrderID) Me.columnCustomerID = New DataColumn("CustomerID", GetType(System.String), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnCustomerID) Me.columnEmployeeID = New DataColumn("EmployeeID", GetType(System.Int32), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnEmployeeID) Me.columnOrderDate = New DataColumn("OrderDate", GetType(System.DateTime), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnOrderDate) Me.columnRequiredDate = New DataColumn("RequiredDate", GetType(System.DateTime), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnRequiredDate) Me.columnShippedDate = New DataColumn("ShippedDate", GetType(System.DateTime), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnShippedDate) Me.columnShipVia = New DataColumn("ShipVia", GetType(System.Int32), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnShipVia) Me.columnFreight = New DataColumn("Freight", GetType(System.Decimal), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnFreight) Me.columnShipName = New DataColumn("ShipName", GetType(System.String), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnShipName) Me.columnShipAddress = New DataColumn("ShipAddress", GetType(System.String), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnShipAddress) Me.columnShipCity = New DataColumn("ShipCity", GetType(System.String), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnShipCity) Me.columnShipRegion = New DataColumn("ShipRegion", GetType(System.String), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnShipRegion) Me.columnShipPostalCode = New DataColumn("ShipPostalCode", GetType(System.String), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnShipPostalCode) Me.columnShipCountry = New DataColumn("ShipCountry", GetType(System.String), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnShipCountry) Me.Constraints.Add(New UniqueConstraint("NorthwindKey2", New DataColumn() {Me.columnOrderID}, true)) Me.columnOrderID.AutoIncrement = true Me.columnOrderID.AllowDBNull = false Me.columnOrderID.ReadOnly = true Me.columnOrderID.Unique = true End Sub Public Function NewOrdersRow() As OrdersRow Return CType(Me.NewRow,OrdersRow) End Function Protected Overrides Function NewRowFromBuilder(ByVal builder As DataRowBuilder) As DataRow Return New OrdersRow(builder) End Function Protected Overrides Function GetRowType() As System.Type Return GetType(OrdersRow) End Function Protected Overrides Sub OnRowChanged(ByVal e As DataRowChangeEventArgs) MyBase.OnRowChanged(e) If (Not (Me.OrdersRowChangedEvent) Is Nothing) Then RaiseEvent OrdersRowChanged(Me, New OrdersRowChangeEvent(CType(e.Row,OrdersRow), e.Action)) End If End Sub Protected Overrides Sub OnRowChanging(ByVal e As DataRowChangeEventArgs) MyBase.OnRowChanging(e) If (Not (Me.OrdersRowChangingEvent) Is Nothing) Then RaiseEvent OrdersRowChanging(Me, New OrdersRowChangeEvent(CType(e.Row,OrdersRow), e.Action)) End If End Sub Protected Overrides Sub OnRowDeleted(ByVal e As DataRowChangeEventArgs) MyBase.OnRowDeleted(e) If (Not (Me.OrdersRowDeletedEvent) Is Nothing) Then RaiseEvent OrdersRowDeleted(Me, New OrdersRowChangeEvent(CType(e.Row,OrdersRow), e.Action)) End If End Sub Protected Overrides Sub OnRowDeleting(ByVal e As DataRowChangeEventArgs) MyBase.OnRowDeleting(e) If (Not (Me.OrdersRowDeletingEvent) Is Nothing) Then RaiseEvent OrdersRowDeleting(Me, New OrdersRowChangeEvent(CType(e.Row,OrdersRow), e.Action)) End If End Sub Public Sub RemoveOrdersRow(ByVal row As OrdersRow) Me.Rows.Remove(row) End Sub End Class _ Public Class OrdersRow Inherits DataRow Private tableOrders As OrdersDataTable Friend Sub New(ByVal rb As DataRowBuilder) MyBase.New(rb) Me.tableOrders = CType(Me.Table,OrdersDataTable) End Sub Public Property OrderID As Integer Get Return CType(Me(Me.tableOrders.OrderIDColumn),Integer) End Get Set Me(Me.tableOrders.OrderIDColumn) = value End Set End Property Public Property CustomerID As String Get Try Return CType(Me(Me.tableOrders.CustomerIDColumn),String) Catch e As InvalidCastException Throw New StrongTypingException("Cannot get value because it is DBNull.", e) End Try End Get Set Me(Me.tableOrders.CustomerIDColumn) = value End Set End Property Public Property EmployeeID As Integer Get Try Return CType(Me(Me.tableOrders.EmployeeIDColumn),Integer) Catch e As InvalidCastException Throw New StrongTypingException("Cannot get value because it is DBNull.", e) End Try End Get Set Me(Me.tableOrders.EmployeeIDColumn) = value End Set End Property Public Property OrderDate As Date Get Try Return CType(Me(Me.tableOrders.OrderDateColumn),Date) Catch e As InvalidCastException Throw New StrongTypingException("Cannot get value because it is DBNull.", e) End Try End Get Set Me(Me.tableOrders.OrderDateColumn) = value End Set End Property Public Property RequiredDate As Date Get Try Return CType(Me(Me.tableOrders.RequiredDateColumn),Date) Catch e As InvalidCastException Throw New StrongTypingException("Cannot get value because it is DBNull.", e) End Try End Get Set Me(Me.tableOrders.RequiredDateColumn) = value End Set End Property Public Property ShippedDate As Date Get Try Return CType(Me(Me.tableOrders.ShippedDateColumn),Date) Catch e As InvalidCastException Throw New StrongTypingException("Cannot get value because it is DBNull.", e) End Try End Get Set Me(Me.tableOrders.ShippedDateColumn) = value End Set End Property Public Property ShipVia As Integer Get Try Return CType(Me(Me.tableOrders.ShipViaColumn),Integer) Catch e As InvalidCastException Throw New StrongTypingException("Cannot get value because it is DBNull.", e) End Try End Get Set Me(Me.tableOrders.ShipViaColumn) = value End Set End Property Public Property Freight As Decimal Get Try Return CType(Me(Me.tableOrders.FreightColumn),Decimal) Catch e As InvalidCastException Throw New StrongTypingException("Cannot get value because it is DBNull.", e) End Try End Get Set Me(Me.tableOrders.FreightColumn) = value End Set End Property Public Property ShipName As String Get Try Return CType(Me(Me.tableOrders.ShipNameColumn),String) Catch e As InvalidCastException Throw New StrongTypingException("Cannot get value because it is DBNull.", e) End Try End Get Set Me(Me.tableOrders.ShipNameColumn) = value End Set End Property Public Property ShipAddress As String Get Try Return CType(Me(Me.tableOrders.ShipAddressColumn),String) Catch e As InvalidCastException Throw New StrongTypingException("Cannot get value because it is DBNull.", e) End Try End Get Set Me(Me.tableOrders.ShipAddressColumn) = value End Set End Property Public Property ShipCity As String Get Try Return CType(Me(Me.tableOrders.ShipCityColumn),String) Catch e As InvalidCastException Throw New StrongTypingException("Cannot get value because it is DBNull.", e) End Try End Get Set Me(Me.tableOrders.ShipCityColumn) = value End Set End Property Public Property ShipRegion As String Get Try Return CType(Me(Me.tableOrders.ShipRegionColumn),String) Catch e As InvalidCastException Throw New StrongTypingException("Cannot get value because it is DBNull.", e) End Try End Get Set Me(Me.tableOrders.ShipRegionColumn) = value End Set End Property Public Property ShipPostalCode As String Get Try Return CType(Me(Me.tableOrders.ShipPostalCodeColumn),String) Catch e As InvalidCastException Throw New StrongTypingException("Cannot get value because it is DBNull.", e) End Try End Get Set Me(Me.tableOrders.ShipPostalCodeColumn) = value End Set End Property Public Property ShipCountry As String Get Try Return CType(Me(Me.tableOrders.ShipCountryColumn),String) Catch e As InvalidCastException Throw New StrongTypingException("Cannot get value because it is DBNull.", e) End Try End Get Set Me(Me.tableOrders.ShipCountryColumn) = value End Set End Property Public Property CustomersRow As CustomersRow Get Return CType(Me.GetParentRow(Me.Table.ParentRelations("CustomersOrders")),CustomersRow) End Get Set Me.SetParentRow(value, Me.Table.ParentRelations("CustomersOrders")) End Set End Property Public Function IsCustomerIDNull() As Boolean Return Me.IsNull(Me.tableOrders.CustomerIDColumn) End Function Public Sub SetCustomerIDNull() Me(Me.tableOrders.CustomerIDColumn) = System.Convert.DBNull End Sub Public Function IsEmployeeIDNull() As Boolean Return Me.IsNull(Me.tableOrders.EmployeeIDColumn) End Function Public Sub SetEmployeeIDNull() Me(Me.tableOrders.EmployeeIDColumn) = System.Convert.DBNull End Sub Public Function IsOrderDateNull() As Boolean Return Me.IsNull(Me.tableOrders.OrderDateColumn) End Function Public Sub SetOrderDateNull() Me(Me.tableOrders.OrderDateColumn) = System.Convert.DBNull End Sub Public Function IsRequiredDateNull() As Boolean Return Me.IsNull(Me.tableOrders.RequiredDateColumn) End Function Public Sub SetRequiredDateNull() Me(Me.tableOrders.RequiredDateColumn) = System.Convert.DBNull End Sub Public Function IsShippedDateNull() As Boolean Return Me.IsNull(Me.tableOrders.ShippedDateColumn) End Function Public Sub SetShippedDateNull() Me(Me.tableOrders.ShippedDateColumn) = System.Convert.DBNull End Sub Public Function IsShipViaNull() As Boolean Return Me.IsNull(Me.tableOrders.ShipViaColumn) End Function Public Sub SetShipViaNull() Me(Me.tableOrders.ShipViaColumn) = System.Convert.DBNull End Sub Public Function IsFreightNull() As Boolean Return Me.IsNull(Me.tableOrders.FreightColumn) End Function Public Sub SetFreightNull() Me(Me.tableOrders.FreightColumn) = System.Convert.DBNull End Sub Public Function IsShipNameNull() As Boolean Return Me.IsNull(Me.tableOrders.ShipNameColumn) End Function Public Sub SetShipNameNull() Me(Me.tableOrders.ShipNameColumn) = System.Convert.DBNull End Sub Public Function IsShipAddressNull() As Boolean Return Me.IsNull(Me.tableOrders.ShipAddressColumn) End Function Public Sub SetShipAddressNull() Me(Me.tableOrders.ShipAddressColumn) = System.Convert.DBNull End Sub Public Function IsShipCityNull() As Boolean Return Me.IsNull(Me.tableOrders.ShipCityColumn) End Function Public Sub SetShipCityNull() Me(Me.tableOrders.ShipCityColumn) = System.Convert.DBNull End Sub Public Function IsShipRegionNull() As Boolean Return Me.IsNull(Me.tableOrders.ShipRegionColumn) End Function Public Sub SetShipRegionNull() Me(Me.tableOrders.ShipRegionColumn) = System.Convert.DBNull End Sub Public Function IsShipPostalCodeNull() As Boolean Return Me.IsNull(Me.tableOrders.ShipPostalCodeColumn) End Function Public Sub SetShipPostalCodeNull() Me(Me.tableOrders.ShipPostalCodeColumn) = System.Convert.DBNull End Sub Public Function IsShipCountryNull() As Boolean Return Me.IsNull(Me.tableOrders.ShipCountryColumn) End Function Public Sub SetShipCountryNull() Me(Me.tableOrders.ShipCountryColumn) = System.Convert.DBNull End Sub Public Function GetOrder_DetailsRows() As Order_DetailsRow() Return CType(Me.GetChildRows(Me.Table.ChildRelations("OrdersOrder_Details")),Order_DetailsRow()) End Function End Class _ Public Class OrdersRowChangeEvent Inherits EventArgs Private eventRow As OrdersRow Private eventAction As DataRowAction Public Sub New(ByVal row As OrdersRow, ByVal action As DataRowAction) MyBase.New Me.eventRow = row Me.eventAction = action End Sub Public ReadOnly Property Row As OrdersRow Get Return Me.eventRow End Get End Property Public ReadOnly Property Action As DataRowAction Get Return Me.eventAction End Get End Property End Class _ Public Class Order_DetailsDataTable Inherits DataTable Implements System.Collections.IEnumerable Private columnOrderID As DataColumn Private columnProductID As DataColumn Private columnUnitPrice As DataColumn Private columnQuantity As DataColumn Private columnDiscount As DataColumn Friend Sub New() MyBase.New("Order_Details") Me.InitClass End Sub Friend Sub New(ByVal table As DataTable) MyBase.New(table.TableName) If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then Me.CaseSensitive = table.CaseSensitive End If If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then Me.Locale = table.Locale End If If (table.Namespace <> table.DataSet.Namespace) Then Me.Namespace = table.Namespace End If Me.Prefix = table.Prefix Me.MinimumCapacity = table.MinimumCapacity End Sub _ Public ReadOnly Property Count As Integer Get Return Me.Rows.Count End Get End Property Friend ReadOnly Property OrderIDColumn As DataColumn Get Return Me.columnOrderID End Get End Property Friend ReadOnly Property ProductIDColumn As DataColumn Get Return Me.columnProductID End Get End Property Friend ReadOnly Property UnitPriceColumn As DataColumn Get Return Me.columnUnitPrice End Get End Property Friend ReadOnly Property QuantityColumn As DataColumn Get Return Me.columnQuantity End Get End Property Friend ReadOnly Property DiscountColumn As DataColumn Get Return Me.columnDiscount End Get End Property Public Default ReadOnly Property Item(ByVal index As Integer) As Order_DetailsRow Get Return CType(Me.Rows(index),Order_DetailsRow) End Get End Property Public Event Order_DetailsRowChanged As Order_DetailsRowChangeEventHandler Public Event Order_DetailsRowChanging As Order_DetailsRowChangeEventHandler Public Event Order_DetailsRowDeleted As Order_DetailsRowChangeEventHandler Public Event Order_DetailsRowDeleting As Order_DetailsRowChangeEventHandler Public Overloads Sub AddOrder_DetailsRow(ByVal row As Order_DetailsRow) Me.Rows.Add(row) End Sub Public Overloads Function AddOrder_DetailsRow(ByVal parentOrdersRowByOrdersOrder_Details As OrdersRow, ByVal ProductID As Integer, ByVal UnitPrice As Decimal, ByVal Quantity As Short, ByVal Discount As Single) As Order_DetailsRow Dim rowOrder_DetailsRow As Order_DetailsRow = CType(Me.NewRow,Order_DetailsRow) rowOrder_DetailsRow.ItemArray = New Object() {parentOrdersRowByOrdersOrder_Details(0), ProductID, UnitPrice, Quantity, Discount} Me.Rows.Add(rowOrder_DetailsRow) Return rowOrder_DetailsRow End Function Public Function FindByOrderIDProductID(ByVal OrderID As Integer, ByVal ProductID As Integer) As Order_DetailsRow Return CType(Me.Rows.Find(New Object() {OrderID,ProductID}),Order_DetailsRow) End Function Public Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator Return Me.Rows.GetEnumerator End Function Public Overrides Function Clone() As DataTable Dim cln As Order_DetailsDataTable = CType(MyBase.Clone,Order_DetailsDataTable) cln.InitVars Return cln End Function Protected Overrides Function CreateInstance() As DataTable Return New Order_DetailsDataTable End Function Friend Sub InitVars() Me.columnOrderID = Me.Columns("OrderID") Me.columnProductID = Me.Columns("ProductID") Me.columnUnitPrice = Me.Columns("UnitPrice") Me.columnQuantity = Me.Columns("Quantity") Me.columnDiscount = Me.Columns("Discount") End Sub Private Sub InitClass() Me.columnOrderID = New DataColumn("OrderID", GetType(System.Int32), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnOrderID) Me.columnProductID = New DataColumn("ProductID", GetType(System.Int32), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnProductID) Me.columnUnitPrice = New DataColumn("UnitPrice", GetType(System.Decimal), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnUnitPrice) Me.columnQuantity = New DataColumn("Quantity", GetType(System.Int16), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnQuantity) Me.columnDiscount = New DataColumn("Discount", GetType(System.Single), Nothing, System.Data.MappingType.Element) Me.Columns.Add(Me.columnDiscount) Me.Constraints.Add(New UniqueConstraint("NorthwindKey3", New DataColumn() {Me.columnOrderID,Me.columnProductID}, true)) Me.columnOrderID.AllowDBNull = false Me.columnProductID.AllowDBNull = false Me.columnUnitPrice.AllowDBNull = false Me.columnQuantity.AllowDBNull = false Me.columnDiscount.AllowDBNull = false End Sub Public Function NewOrder_DetailsRow() As Order_DetailsRow Return CType(Me.NewRow,Order_DetailsRow) End Function Protected Overrides Function NewRowFromBuilder(ByVal builder As DataRowBuilder) As DataRow Return New Order_DetailsRow(builder) End Function Protected Overrides Function GetRowType() As System.Type Return GetType(Order_DetailsRow) End Function Protected Overrides Sub OnRowChanged(ByVal e As DataRowChangeEventArgs) MyBase.OnRowChanged(e) If (Not (Me.Order_DetailsRowChangedEvent) Is Nothing) Then RaiseEvent Order_DetailsRowChanged(Me, New Order_DetailsRowChangeEvent(CType(e.Row,Order_DetailsRow), e.Action)) End If End Sub Protected Overrides Sub OnRowChanging(ByVal e As DataRowChangeEventArgs) MyBase.OnRowChanging(e) If (Not (Me.Order_DetailsRowChangingEvent) Is Nothing) Then RaiseEvent Order_DetailsRowChanging(Me, New Order_DetailsRowChangeEvent(CType(e.Row,Order_DetailsRow), e.Action)) End If End Sub Protected Overrides Sub OnRowDeleted(ByVal e As DataRowChangeEventArgs) MyBase.OnRowDeleted(e) If (Not (Me.Order_DetailsRowDeletedEvent) Is Nothing) Then RaiseEvent Order_DetailsRowDeleted(Me, New Order_DetailsRowChangeEvent(CType(e.Row,Order_DetailsRow), e.Action)) End If End Sub Protected Overrides Sub OnRowDeleting(ByVal e As DataRowChangeEventArgs) MyBase.OnRowDeleting(e) If (Not (Me.Order_DetailsRowDeletingEvent) Is Nothing) Then RaiseEvent Order_DetailsRowDeleting(Me, New Order_DetailsRowChangeEvent(CType(e.Row,Order_DetailsRow), e.Action)) End If End Sub Public Sub RemoveOrder_DetailsRow(ByVal row As Order_DetailsRow) Me.Rows.Remove(row) End Sub End Class _ Public Class Order_DetailsRow Inherits DataRow Private tableOrder_Details As Order_DetailsDataTable Friend Sub New(ByVal rb As DataRowBuilder) MyBase.New(rb) Me.tableOrder_Details = CType(Me.Table,Order_DetailsDataTable) End Sub Public Property OrderID As Integer Get Return CType(Me(Me.tableOrder_Details.OrderIDColumn),Integer) End Get Set Me(Me.tableOrder_Details.OrderIDColumn) = value End Set End Property Public Property ProductID As Integer Get Return CType(Me(Me.tableOrder_Details.ProductIDColumn),Integer) End Get Set Me(Me.tableOrder_Details.ProductIDColumn) = value End Set End Property Public Property UnitPrice As Decimal Get Return CType(Me(Me.tableOrder_Details.UnitPriceColumn),Decimal) End Get Set Me(Me.tableOrder_Details.UnitPriceColumn) = value End Set End Property Public Property Quantity As Short Get Return CType(Me(Me.tableOrder_Details.QuantityColumn),Short) End Get Set Me(Me.tableOrder_Details.QuantityColumn) = value End Set End Property Public Property Discount As Single Get Return CType(Me(Me.tableOrder_Details.DiscountColumn),Single) End Get Set Me(Me.tableOrder_Details.DiscountColumn) = value End Set End Property Public Property OrdersRow As OrdersRow Get Return CType(Me.GetParentRow(Me.Table.ParentRelations("OrdersOrder_Details")),OrdersRow) End Get Set Me.SetParentRow(value, Me.Table.ParentRelations("OrdersOrder_Details")) End Set End Property End Class _ Public Class Order_DetailsRowChangeEvent Inherits EventArgs Private eventRow As Order_DetailsRow Private eventAction As DataRowAction Public Sub New(ByVal row As Order_DetailsRow, ByVal action As DataRowAction) MyBase.New Me.eventRow = row Me.eventAction = action End Sub Public ReadOnly Property Row As Order_DetailsRow Get Return Me.eventRow End Get End Property Public ReadOnly Property Action As DataRowAction Get Return Me.eventAction End Get End Property End Class End Class