'------------------------------------------------------------------------------
' <auto-generated>
'     This code was generated by a tool.
'     Runtime Version:2.0.50727.42
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On

Imports System


<System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0"),  _
 Serializable(),  _
 System.ComponentModel.DesignerCategoryAttribute("code"),  _
 System.ComponentModel.ToolboxItem(true),  _
 System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema"),  _
 System.Xml.Serialization.XmlRootAttribute("northwindDataSet"),  _
 System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")>  _
Partial Public Class northwindDataSet
    Inherits System.Data.DataSet
    
    Private tableCategories As CategoriesDataTable
    
    Private tableProducts As ProductsDataTable
    
    Private relationCategoriesProducts As System.Data.DataRelation
    
    Private _schemaSerializationMode As System.Data.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema
    
    <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
    Public Sub New()
        MyBase.New
        Me.BeginInit
        Me.InitClass
        Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged
        AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler
        AddHandler MyBase.Relations.CollectionChanged, schemaChangedHandler
        Me.EndInit
    End Sub
    
    <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
    Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext)
        MyBase.New(info, context, false)
        If (Me.IsBinarySerialized(info, context) = true) Then
            Me.InitVars(false)
            Dim schemaChangedHandler1 As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged
            AddHandler Me.Tables.CollectionChanged, schemaChangedHandler1
            AddHandler Me.Relations.CollectionChanged, schemaChangedHandler1
            Return
        End If
        Dim strSchema As String = CType(info.GetValue("XmlSchema", GetType(String)),String)
        If (Me.DetermineSchemaSerializationMode(info, context) = System.Data.SchemaSerializationMode.IncludeSchema) Then
            Dim ds As System.Data.DataSet = New System.Data.DataSet
            ds.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema)))
            If (Not (ds.Tables("Categories")) Is Nothing) Then
                MyBase.Tables.Add(New CategoriesDataTable(ds.Tables("Categories")))
            End If
            If (Not (ds.Tables("Products")) Is Nothing) Then
                MyBase.Tables.Add(New ProductsDataTable(ds.Tables("Products")))
            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.ReadXmlSchema(New System.Xml.XmlTextReader(New System.IO.StringReader(strSchema)))
        End If
        Me.GetSerializationData(info, context)
        Dim schemaChangedHandler As System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged
        AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler
        AddHandler Me.Relations.CollectionChanged, schemaChangedHandler
    End Sub
    
    <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
     System.ComponentModel.Browsable(false),  _
     System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)>  _
    Public ReadOnly Property Categories() As CategoriesDataTable
        Get
            Return Me.tableCategories
        End Get
    End Property
    
    <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
     System.ComponentModel.Browsable(false),  _
     System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content)>  _
    Public ReadOnly Property Products() As ProductsDataTable
        Get
            Return Me.tableProducts
        End Get
    End Property
    
    <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
     System.ComponentModel.BrowsableAttribute(true),  _
     System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Visible)>  _
    Public Overrides Property SchemaSerializationMode() As System.Data.SchemaSerializationMode
        Get
            Return Me._schemaSerializationMode
        End Get
        Set
            Me._schemaSerializationMode = value
        End Set
    End Property
    
    <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
     System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)>  _
    Public Shadows ReadOnly Property Tables() As System.Data.DataTableCollection
        Get
            Return MyBase.Tables
        End Get
    End Property
    
    <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
     System.ComponentModel.DesignerSerializationVisibilityAttribute(System.ComponentModel.DesignerSerializationVisibility.Hidden)>  _
    Public Shadows ReadOnly Property Relations() As System.Data.DataRelationCollection
        Get
            Return MyBase.Relations
        End Get
    End Property
    
    <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
    Protected Overrides Sub InitializeDerivedDataSet()
        Me.BeginInit
        Me.InitClass
        Me.EndInit
    End Sub
    
    <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
    Public Overrides Function Clone() As System.Data.DataSet
        Dim cln As northwindDataSet = CType(MyBase.Clone,northwindDataSet)
        cln.InitVars
        cln.SchemaSerializationMode = Me.SchemaSerializationMode
        Return cln
    End Function
    
    <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
    Protected Overrides Function ShouldSerializeTables() As Boolean
        Return false
    End Function
    
    <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
    Protected Overrides Function ShouldSerializeRelations() As Boolean
        Return false
    End Function
    
    <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
    Protected Overrides Sub ReadXmlSerializable(ByVal reader As System.Xml.XmlReader)
        If (Me.DetermineSchemaSerializationMode(reader) = System.Data.SchemaSerializationMode.IncludeSchema) Then
            Me.Reset
            Dim ds As System.Data.DataSet = New System.Data.DataSet
            ds.ReadXml(reader)
            If (Not (ds.Tables("Categories")) Is Nothing) Then
                MyBase.Tables.Add(New CategoriesDataTable(ds.Tables("Categories")))
            End If
            If (Not (ds.Tables("Products")) Is Nothing) Then
                MyBase.Tables.Add(New ProductsDataTable(ds.Tables("Products")))
            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.ReadXml(reader)
            Me.InitVars
        End If
    End Sub
    
    <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
    Protected Overrides Function GetSchemaSerializable() As System.Xml.Schema.XmlSchema
        Dim stream As System.IO.MemoryStream = New System.IO.MemoryStream
        Me.WriteXmlSchema(New System.Xml.XmlTextWriter(stream, Nothing))
        stream.Position = 0
        Return System.Xml.Schema.XmlSchema.Read(New System.Xml.XmlTextReader(stream), Nothing)
    End Function
    
    <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
    Friend Overloads Sub InitVars()
        Me.InitVars(true)
    End Sub
    
    <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
    Friend Overloads Sub InitVars(ByVal initTable As Boolean)
        Me.tableCategories = CType(MyBase.Tables("Categories"),CategoriesDataTable)
        If (initTable = true) Then
            If (Not (Me.tableCategories) Is Nothing) Then
                Me.tableCategories.InitVars
            End If
        End If
        Me.tableProducts = CType(MyBase.Tables("Products"),ProductsDataTable)
        If (initTable = true) Then
            If (Not (Me.tableProducts) Is Nothing) Then
                Me.tableProducts.InitVars
            End If
        End If
        Me.relationCategoriesProducts = Me.Relations("CategoriesProducts")
    End Sub
    
    <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
    Private Sub InitClass()
        Me.DataSetName = "northwindDataSet"
        Me.Prefix = ""
        Me.Namespace = "http://tempuri.org/northwindDataSet.xsd"
        Me.EnforceConstraints = true
        Me.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema
        Me.tableCategories = New CategoriesDataTable
        MyBase.Tables.Add(Me.tableCategories)
        Me.tableProducts = New ProductsDataTable
        MyBase.Tables.Add(Me.tableProducts)
        Me.relationCategoriesProducts = New System.Data.DataRelation("CategoriesProducts", New System.Data.DataColumn() {Me.tableCategories.CategoryIDColumn}, New System.Data.DataColumn() {Me.tableProducts.CategoryIDColumn}, false)
        Me.Relations.Add(Me.relationCategoriesProducts)
    End Sub
    
    <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
    Private Function ShouldSerializeCategories() As Boolean
        Return false
    End Function
    
    <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
    Private Function ShouldSerializeProducts() As Boolean
        Return false
    End Function
    
    <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
    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
    
    <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
    Public Shared Function GetTypedDataSetSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType
        Dim ds As northwindDataSet = New northwindDataSet
        Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType
        Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence
        xs.Add(ds.GetSchemaSerializable)
        Dim any As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny
        any.Namespace = ds.Namespace
        sequence.Items.Add(any)
        type.Particle = sequence
        Return type
    End Function
    
    Public Delegate Sub CategoriesRowChangeEventHandler(ByVal sender As Object, ByVal e As CategoriesRowChangeEvent)
    
    Public Delegate Sub ProductsRowChangeEventHandler(ByVal sender As Object, ByVal e As ProductsRowChangeEvent)
    
    <System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0"),  _
     System.Serializable(),  _
     System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")>  _
    Partial Public Class CategoriesDataTable
        Inherits System.Data.DataTable
        Implements System.Collections.IEnumerable
        
        Private columnCategoryID As System.Data.DataColumn
        
        Private columnCategoryName As System.Data.DataColumn
        
        Private columnDescription As System.Data.DataColumn
        
        Private columnPicture As System.Data.DataColumn
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Sub New()
            MyBase.New
            Me.TableName = "Categories"
            Me.BeginInit
            Me.InitClass
            Me.EndInit
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Friend Sub New(ByVal table As System.Data.DataTable)
            MyBase.New
            Me.TableName = 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
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext)
            MyBase.New(info, context)
            Me.InitVars
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public ReadOnly Property CategoryIDColumn() As System.Data.DataColumn
            Get
                Return Me.columnCategoryID
            End Get
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public ReadOnly Property CategoryNameColumn() As System.Data.DataColumn
            Get
                Return Me.columnCategoryName
            End Get
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public ReadOnly Property DescriptionColumn() As System.Data.DataColumn
            Get
                Return Me.columnDescription
            End Get
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public ReadOnly Property PictureColumn() As System.Data.DataColumn
            Get
                Return Me.columnPicture
            End Get
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
         System.ComponentModel.Browsable(false)>  _
        Public ReadOnly Property Count() As Integer
            Get
                Return Me.Rows.Count
            End Get
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Default ReadOnly Property Item(ByVal index As Integer) As CategoriesRow
            Get
                Return CType(Me.Rows(index),CategoriesRow)
            End Get
        End Property
        
        Public Event CategoriesRowChanging As CategoriesRowChangeEventHandler
        
        Public Event CategoriesRowChanged As CategoriesRowChangeEventHandler
        
        Public Event CategoriesRowDeleting As CategoriesRowChangeEventHandler
        
        Public Event CategoriesRowDeleted As CategoriesRowChangeEventHandler
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Overloads Sub AddCategoriesRow(ByVal row As CategoriesRow)
            Me.Rows.Add(row)
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Overloads Function AddCategoriesRow(ByVal CategoryName As String, ByVal Description As String, ByVal Picture() As Byte) As CategoriesRow
            Dim rowCategoriesRow As CategoriesRow = CType(Me.NewRow,CategoriesRow)
            rowCategoriesRow.ItemArray = New Object() {Nothing, CategoryName, Description, Picture}
            Me.Rows.Add(rowCategoriesRow)
            Return rowCategoriesRow
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Function FindByCategoryID(ByVal CategoryID As Integer) As CategoriesRow
            Return CType(Me.Rows.Find(New Object() {CategoryID}),CategoriesRow)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator
            Return Me.Rows.GetEnumerator
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Overrides Function Clone() As System.Data.DataTable
            Dim cln As CategoriesDataTable = CType(MyBase.Clone,CategoriesDataTable)
            cln.InitVars
            Return cln
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Protected Overrides Function CreateInstance() As System.Data.DataTable
            Return New CategoriesDataTable
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Friend Sub InitVars()
            Me.columnCategoryID = MyBase.Columns("CategoryID")
            Me.columnCategoryName = MyBase.Columns("CategoryName")
            Me.columnDescription = MyBase.Columns("Description")
            Me.columnPicture = MyBase.Columns("Picture")
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Private Sub InitClass()
            Me.columnCategoryID = New System.Data.DataColumn("CategoryID", GetType(Integer), Nothing, System.Data.MappingType.Element)
            MyBase.Columns.Add(Me.columnCategoryID)
            Me.columnCategoryName = New System.Data.DataColumn("CategoryName", GetType(String), Nothing, System.Data.MappingType.Element)
            MyBase.Columns.Add(Me.columnCategoryName)
            Me.columnDescription = New System.Data.DataColumn("Description", GetType(String), Nothing, System.Data.MappingType.Element)
            MyBase.Columns.Add(Me.columnDescription)
            Me.columnPicture = New System.Data.DataColumn("Picture", GetType(Byte()), Nothing, System.Data.MappingType.Element)
            MyBase.Columns.Add(Me.columnPicture)
            Me.Constraints.Add(New System.Data.UniqueConstraint("Constraint1", New System.Data.DataColumn() {Me.columnCategoryID}, true))
            Me.columnCategoryID.AutoIncrement = true
            Me.columnCategoryID.AllowDBNull = false
            Me.columnCategoryID.Unique = true
            Me.columnCategoryName.MaxLength = 15
            Me.columnDescription.MaxLength = 536870910
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Function NewCategoriesRow() As CategoriesRow
            Return CType(Me.NewRow,CategoriesRow)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow
            Return New CategoriesRow(builder)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Protected Overrides Function GetRowType() As System.Type
            Return GetType(CategoriesRow)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs)
            MyBase.OnRowChanged(e)
            If (Not (Me.CategoriesRowChangedEvent) Is Nothing) Then
                RaiseEvent CategoriesRowChanged(Me, New CategoriesRowChangeEvent(CType(e.Row,CategoriesRow), e.Action))
            End If
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs)
            MyBase.OnRowChanging(e)
            If (Not (Me.CategoriesRowChangingEvent) Is Nothing) Then
                RaiseEvent CategoriesRowChanging(Me, New CategoriesRowChangeEvent(CType(e.Row,CategoriesRow), e.Action))
            End If
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs)
            MyBase.OnRowDeleted(e)
            If (Not (Me.CategoriesRowDeletedEvent) Is Nothing) Then
                RaiseEvent CategoriesRowDeleted(Me, New CategoriesRowChangeEvent(CType(e.Row,CategoriesRow), e.Action))
            End If
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs)
            MyBase.OnRowDeleting(e)
            If (Not (Me.CategoriesRowDeletingEvent) Is Nothing) Then
                RaiseEvent CategoriesRowDeleting(Me, New CategoriesRowChangeEvent(CType(e.Row,CategoriesRow), e.Action))
            End If
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Sub RemoveCategoriesRow(ByVal row As CategoriesRow)
            Me.Rows.Remove(row)
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType
            Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType
            Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence
            Dim ds As northwindDataSet = New northwindDataSet
            xs.Add(ds.GetSchemaSerializable)
            Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny
            any1.Namespace = "http://www.w3.org/2001/XMLSchema"
            any1.MinOccurs = New Decimal(0)
            any1.MaxOccurs = Decimal.MaxValue
            any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax
            sequence.Items.Add(any1)
            Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny
            any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"
            any2.MinOccurs = New Decimal(1)
            any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax
            sequence.Items.Add(any2)
            Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute
            attribute1.Name = "namespace"
            attribute1.FixedValue = ds.Namespace
            type.Attributes.Add(attribute1)
            Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute
            attribute2.Name = "tableTypeName"
            attribute2.FixedValue = "CategoriesDataTable"
            type.Attributes.Add(attribute2)
            type.Particle = sequence
            Return type
        End Function
    End Class
    
    <System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0"),  _
     System.Serializable(),  _
     System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")>  _
    Partial Public Class ProductsDataTable
        Inherits System.Data.DataTable
        Implements System.Collections.IEnumerable
        
        Private columnProductID As System.Data.DataColumn
        
        Private columnProductName As System.Data.DataColumn
        
        Private columnSupplierID As System.Data.DataColumn
        
        Private columnCategoryID As System.Data.DataColumn
        
        Private columnQuantityPerUnit As System.Data.DataColumn
        
        Private columnUnitPrice As System.Data.DataColumn
        
        Private columnUnitsInStock As System.Data.DataColumn
        
        Private columnUnitsOnOrder As System.Data.DataColumn
        
        Private columnReorderLevel As System.Data.DataColumn
        
        Private columnDiscontinued As System.Data.DataColumn
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Sub New()
            MyBase.New
            Me.TableName = "Products"
            Me.BeginInit
            Me.InitClass
            Me.EndInit
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Friend Sub New(ByVal table As System.Data.DataTable)
            MyBase.New
            Me.TableName = 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
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Protected Sub New(ByVal info As System.Runtime.Serialization.SerializationInfo, ByVal context As System.Runtime.Serialization.StreamingContext)
            MyBase.New(info, context)
            Me.InitVars
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public ReadOnly Property ProductIDColumn() As System.Data.DataColumn
            Get
                Return Me.columnProductID
            End Get
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public ReadOnly Property ProductNameColumn() As System.Data.DataColumn
            Get
                Return Me.columnProductName
            End Get
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public ReadOnly Property SupplierIDColumn() As System.Data.DataColumn
            Get
                Return Me.columnSupplierID
            End Get
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public ReadOnly Property CategoryIDColumn() As System.Data.DataColumn
            Get
                Return Me.columnCategoryID
            End Get
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public ReadOnly Property QuantityPerUnitColumn() As System.Data.DataColumn
            Get
                Return Me.columnQuantityPerUnit
            End Get
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public ReadOnly Property UnitPriceColumn() As System.Data.DataColumn
            Get
                Return Me.columnUnitPrice
            End Get
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public ReadOnly Property UnitsInStockColumn() As System.Data.DataColumn
            Get
                Return Me.columnUnitsInStock
            End Get
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public ReadOnly Property UnitsOnOrderColumn() As System.Data.DataColumn
            Get
                Return Me.columnUnitsOnOrder
            End Get
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public ReadOnly Property ReorderLevelColumn() As System.Data.DataColumn
            Get
                Return Me.columnReorderLevel
            End Get
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public ReadOnly Property DiscontinuedColumn() As System.Data.DataColumn
            Get
                Return Me.columnDiscontinued
            End Get
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
         System.ComponentModel.Browsable(false)>  _
        Public ReadOnly Property Count() As Integer
            Get
                Return Me.Rows.Count
            End Get
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Default ReadOnly Property Item(ByVal index As Integer) As ProductsRow
            Get
                Return CType(Me.Rows(index),ProductsRow)
            End Get
        End Property
        
        Public Event ProductsRowChanging As ProductsRowChangeEventHandler
        
        Public Event ProductsRowChanged As ProductsRowChangeEventHandler
        
        Public Event ProductsRowDeleting As ProductsRowChangeEventHandler
        
        Public Event ProductsRowDeleted As ProductsRowChangeEventHandler
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Overloads Sub AddProductsRow(ByVal row As ProductsRow)
            Me.Rows.Add(row)
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Overloads Function AddProductsRow(ByVal ProductName As String, ByVal SupplierID As Integer, ByVal parentCategoriesRowByCategoriesProducts As CategoriesRow, ByVal QuantityPerUnit As String, ByVal UnitPrice As Decimal, ByVal UnitsInStock As Short, ByVal UnitsOnOrder As Short, ByVal ReorderLevel As Short, ByVal Discontinued As Boolean) As ProductsRow
            Dim rowProductsRow As ProductsRow = CType(Me.NewRow,ProductsRow)
            rowProductsRow.ItemArray = New Object() {Nothing, ProductName, SupplierID, parentCategoriesRowByCategoriesProducts(0), QuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder, ReorderLevel, Discontinued}
            Me.Rows.Add(rowProductsRow)
            Return rowProductsRow
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Function FindByProductID(ByVal ProductID As Integer) As ProductsRow
            Return CType(Me.Rows.Find(New Object() {ProductID}),ProductsRow)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Overridable Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator
            Return Me.Rows.GetEnumerator
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Overrides Function Clone() As System.Data.DataTable
            Dim cln As ProductsDataTable = CType(MyBase.Clone,ProductsDataTable)
            cln.InitVars
            Return cln
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Protected Overrides Function CreateInstance() As System.Data.DataTable
            Return New ProductsDataTable
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Friend Sub InitVars()
            Me.columnProductID = MyBase.Columns("ProductID")
            Me.columnProductName = MyBase.Columns("ProductName")
            Me.columnSupplierID = MyBase.Columns("SupplierID")
            Me.columnCategoryID = MyBase.Columns("CategoryID")
            Me.columnQuantityPerUnit = MyBase.Columns("QuantityPerUnit")
            Me.columnUnitPrice = MyBase.Columns("UnitPrice")
            Me.columnUnitsInStock = MyBase.Columns("UnitsInStock")
            Me.columnUnitsOnOrder = MyBase.Columns("UnitsOnOrder")
            Me.columnReorderLevel = MyBase.Columns("ReorderLevel")
            Me.columnDiscontinued = MyBase.Columns("Discontinued")
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Private Sub InitClass()
            Me.columnProductID = New System.Data.DataColumn("ProductID", GetType(Integer), Nothing, System.Data.MappingType.Element)
            MyBase.Columns.Add(Me.columnProductID)
            Me.columnProductName = New System.Data.DataColumn("ProductName", GetType(String), Nothing, System.Data.MappingType.Element)
            MyBase.Columns.Add(Me.columnProductName)
            Me.columnSupplierID = New System.Data.DataColumn("SupplierID", GetType(Integer), Nothing, System.Data.MappingType.Element)
            MyBase.Columns.Add(Me.columnSupplierID)
            Me.columnCategoryID = New System.Data.DataColumn("CategoryID", GetType(Integer), Nothing, System.Data.MappingType.Element)
            MyBase.Columns.Add(Me.columnCategoryID)
            Me.columnQuantityPerUnit = New System.Data.DataColumn("QuantityPerUnit", GetType(String), Nothing, System.Data.MappingType.Element)
            MyBase.Columns.Add(Me.columnQuantityPerUnit)
            Me.columnUnitPrice = New System.Data.DataColumn("UnitPrice", GetType(Decimal), Nothing, System.Data.MappingType.Element)
            MyBase.Columns.Add(Me.columnUnitPrice)
            Me.columnUnitsInStock = New System.Data.DataColumn("UnitsInStock", GetType(Short), Nothing, System.Data.MappingType.Element)
            MyBase.Columns.Add(Me.columnUnitsInStock)
            Me.columnUnitsOnOrder = New System.Data.DataColumn("UnitsOnOrder", GetType(Short), Nothing, System.Data.MappingType.Element)
            MyBase.Columns.Add(Me.columnUnitsOnOrder)
            Me.columnReorderLevel = New System.Data.DataColumn("ReorderLevel", GetType(Short), Nothing, System.Data.MappingType.Element)
            MyBase.Columns.Add(Me.columnReorderLevel)
            Me.columnDiscontinued = New System.Data.DataColumn("Discontinued", GetType(Boolean), Nothing, System.Data.MappingType.Element)
            MyBase.Columns.Add(Me.columnDiscontinued)
            Me.Constraints.Add(New System.Data.UniqueConstraint("Constraint1", New System.Data.DataColumn() {Me.columnProductID}, true))
            Me.columnProductID.AutoIncrement = true
            Me.columnProductID.AllowDBNull = false
            Me.columnProductID.Unique = true
            Me.columnProductName.MaxLength = 40
            Me.columnQuantityPerUnit.MaxLength = 20
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Function NewProductsRow() As ProductsRow
            Return CType(Me.NewRow,ProductsRow)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Protected Overrides Function NewRowFromBuilder(ByVal builder As System.Data.DataRowBuilder) As System.Data.DataRow
            Return New ProductsRow(builder)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Protected Overrides Function GetRowType() As System.Type
            Return GetType(ProductsRow)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Protected Overrides Sub OnRowChanged(ByVal e As System.Data.DataRowChangeEventArgs)
            MyBase.OnRowChanged(e)
            If (Not (Me.ProductsRowChangedEvent) Is Nothing) Then
                RaiseEvent ProductsRowChanged(Me, New ProductsRowChangeEvent(CType(e.Row,ProductsRow), e.Action))
            End If
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Protected Overrides Sub OnRowChanging(ByVal e As System.Data.DataRowChangeEventArgs)
            MyBase.OnRowChanging(e)
            If (Not (Me.ProductsRowChangingEvent) Is Nothing) Then
                RaiseEvent ProductsRowChanging(Me, New ProductsRowChangeEvent(CType(e.Row,ProductsRow), e.Action))
            End If
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Protected Overrides Sub OnRowDeleted(ByVal e As System.Data.DataRowChangeEventArgs)
            MyBase.OnRowDeleted(e)
            If (Not (Me.ProductsRowDeletedEvent) Is Nothing) Then
                RaiseEvent ProductsRowDeleted(Me, New ProductsRowChangeEvent(CType(e.Row,ProductsRow), e.Action))
            End If
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Protected Overrides Sub OnRowDeleting(ByVal e As System.Data.DataRowChangeEventArgs)
            MyBase.OnRowDeleting(e)
            If (Not (Me.ProductsRowDeletingEvent) Is Nothing) Then
                RaiseEvent ProductsRowDeleting(Me, New ProductsRowChangeEvent(CType(e.Row,ProductsRow), e.Action))
            End If
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Sub RemoveProductsRow(ByVal row As ProductsRow)
            Me.Rows.Remove(row)
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Shared Function GetTypedTableSchema(ByVal xs As System.Xml.Schema.XmlSchemaSet) As System.Xml.Schema.XmlSchemaComplexType
            Dim type As System.Xml.Schema.XmlSchemaComplexType = New System.Xml.Schema.XmlSchemaComplexType
            Dim sequence As System.Xml.Schema.XmlSchemaSequence = New System.Xml.Schema.XmlSchemaSequence
            Dim ds As northwindDataSet = New northwindDataSet
            xs.Add(ds.GetSchemaSerializable)
            Dim any1 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny
            any1.Namespace = "http://www.w3.org/2001/XMLSchema"
            any1.MinOccurs = New Decimal(0)
            any1.MaxOccurs = Decimal.MaxValue
            any1.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax
            sequence.Items.Add(any1)
            Dim any2 As System.Xml.Schema.XmlSchemaAny = New System.Xml.Schema.XmlSchemaAny
            any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"
            any2.MinOccurs = New Decimal(1)
            any2.ProcessContents = System.Xml.Schema.XmlSchemaContentProcessing.Lax
            sequence.Items.Add(any2)
            Dim attribute1 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute
            attribute1.Name = "namespace"
            attribute1.FixedValue = ds.Namespace
            type.Attributes.Add(attribute1)
            Dim attribute2 As System.Xml.Schema.XmlSchemaAttribute = New System.Xml.Schema.XmlSchemaAttribute
            attribute2.Name = "tableTypeName"
            attribute2.FixedValue = "ProductsDataTable"
            type.Attributes.Add(attribute2)
            type.Particle = sequence
            Return type
        End Function
    End Class
    
    <System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")>  _
    Partial Public Class CategoriesRow
        Inherits System.Data.DataRow
        
        Private tableCategories As CategoriesDataTable
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Friend Sub New(ByVal rb As System.Data.DataRowBuilder)
            MyBase.New(rb)
            Me.tableCategories = CType(Me.Table,CategoriesDataTable)
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Property CategoryID() As Integer
            Get
                Return CType(Me(Me.tableCategories.CategoryIDColumn),Integer)
            End Get
            Set
                Me(Me.tableCategories.CategoryIDColumn) = value
            End Set
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Property CategoryName() As String
            Get
                Try 
                    Return CType(Me(Me.tableCategories.CategoryNameColumn),String)
                Catch e As System.InvalidCastException
                    Throw New System.Data.StrongTypingException("The value for column 'CategoryName' in table 'Categories' is DBNull.", e)
                End Try
            End Get
            Set
                Me(Me.tableCategories.CategoryNameColumn) = value
            End Set
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Property Description() As String
            Get
                Try 
                    Return CType(Me(Me.tableCategories.DescriptionColumn),String)
                Catch e As System.InvalidCastException
                    Throw New System.Data.StrongTypingException("The value for column 'Description' in table 'Categories' is DBNull.", e)
                End Try
            End Get
            Set
                Me(Me.tableCategories.DescriptionColumn) = value
            End Set
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Property Picture() As Byte()
            Get
                Try 
                    Return CType(Me(Me.tableCategories.PictureColumn),Byte())
                Catch e As System.InvalidCastException
                    Throw New System.Data.StrongTypingException("The value for column 'Picture' in table 'Categories' is DBNull.", e)
                End Try
            End Get
            Set
                Me(Me.tableCategories.PictureColumn) = value
            End Set
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Function IsCategoryNameNull() As Boolean
            Return Me.IsNull(Me.tableCategories.CategoryNameColumn)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Sub SetCategoryNameNull()
            Me(Me.tableCategories.CategoryNameColumn) = System.Convert.DBNull
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Function IsDescriptionNull() As Boolean
            Return Me.IsNull(Me.tableCategories.DescriptionColumn)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Sub SetDescriptionNull()
            Me(Me.tableCategories.DescriptionColumn) = System.Convert.DBNull
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Function IsPictureNull() As Boolean
            Return Me.IsNull(Me.tableCategories.PictureColumn)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Sub SetPictureNull()
            Me(Me.tableCategories.PictureColumn) = System.Convert.DBNull
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Function GetProductsRows() As ProductsRow()
            Return CType(MyBase.GetChildRows(Me.Table.ChildRelations("CategoriesProducts")),ProductsRow())
        End Function
    End Class
    
    <System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")>  _
    Partial Public Class ProductsRow
        Inherits System.Data.DataRow
        
        Private tableProducts As ProductsDataTable
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Friend Sub New(ByVal rb As System.Data.DataRowBuilder)
            MyBase.New(rb)
            Me.tableProducts = CType(Me.Table,ProductsDataTable)
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Property ProductID() As Integer
            Get
                Return CType(Me(Me.tableProducts.ProductIDColumn),Integer)
            End Get
            Set
                Me(Me.tableProducts.ProductIDColumn) = value
            End Set
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Property ProductName() As String
            Get
                Try 
                    Return CType(Me(Me.tableProducts.ProductNameColumn),String)
                Catch e As System.InvalidCastException
                    Throw New System.Data.StrongTypingException("The value for column 'ProductName' in table 'Products' is DBNull.", e)
                End Try
            End Get
            Set
                Me(Me.tableProducts.ProductNameColumn) = value
            End Set
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Property SupplierID() As Integer
            Get
                Try 
                    Return CType(Me(Me.tableProducts.SupplierIDColumn),Integer)
                Catch e As System.InvalidCastException
                    Throw New System.Data.StrongTypingException("The value for column 'SupplierID' in table 'Products' is DBNull.", e)
                End Try
            End Get
            Set
                Me(Me.tableProducts.SupplierIDColumn) = value
            End Set
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Property CategoryID() As Integer
            Get
                Try 
                    Return CType(Me(Me.tableProducts.CategoryIDColumn),Integer)
                Catch e As System.InvalidCastException
                    Throw New System.Data.StrongTypingException("The value for column 'CategoryID' in table 'Products' is DBNull.", e)
                End Try
            End Get
            Set
                Me(Me.tableProducts.CategoryIDColumn) = value
            End Set
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Property QuantityPerUnit() As String
            Get
                Try 
                    Return CType(Me(Me.tableProducts.QuantityPerUnitColumn),String)
                Catch e As System.InvalidCastException
                    Throw New System.Data.StrongTypingException("The value for column 'QuantityPerUnit' in table 'Products' is DBNull.", e)
                End Try
            End Get
            Set
                Me(Me.tableProducts.QuantityPerUnitColumn) = value
            End Set
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Property UnitPrice() As Decimal
            Get
                Try 
                    Return CType(Me(Me.tableProducts.UnitPriceColumn),Decimal)
                Catch e As System.InvalidCastException
                    Throw New System.Data.StrongTypingException("The value for column 'UnitPrice' in table 'Products' is DBNull.", e)
                End Try
            End Get
            Set
                Me(Me.tableProducts.UnitPriceColumn) = value
            End Set
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Property UnitsInStock() As Short
            Get
                Try 
                    Return CType(Me(Me.tableProducts.UnitsInStockColumn),Short)
                Catch e As System.InvalidCastException
                    Throw New System.Data.StrongTypingException("The value for column 'UnitsInStock' in table 'Products' is DBNull.", e)
                End Try
            End Get
            Set
                Me(Me.tableProducts.UnitsInStockColumn) = value
            End Set
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Property UnitsOnOrder() As Short
            Get
                Try 
                    Return CType(Me(Me.tableProducts.UnitsOnOrderColumn),Short)
                Catch e As System.InvalidCastException
                    Throw New System.Data.StrongTypingException("The value for column 'UnitsOnOrder' in table 'Products' is DBNull.", e)
                End Try
            End Get
            Set
                Me(Me.tableProducts.UnitsOnOrderColumn) = value
            End Set
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Property ReorderLevel() As Short
            Get
                Try 
                    Return CType(Me(Me.tableProducts.ReorderLevelColumn),Short)
                Catch e As System.InvalidCastException
                    Throw New System.Data.StrongTypingException("The value for column 'ReorderLevel' in table 'Products' is DBNull.", e)
                End Try
            End Get
            Set
                Me(Me.tableProducts.ReorderLevelColumn) = value
            End Set
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Property Discontinued() As Boolean
            Get
                Try 
                    Return CType(Me(Me.tableProducts.DiscontinuedColumn),Boolean)
                Catch e As System.InvalidCastException
                    Throw New System.Data.StrongTypingException("The value for column 'Discontinued' in table 'Products' is DBNull.", e)
                End Try
            End Get
            Set
                Me(Me.tableProducts.DiscontinuedColumn) = value
            End Set
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Property CategoriesRow() As CategoriesRow
            Get
                Return CType(Me.GetParentRow(Me.Table.ParentRelations("CategoriesProducts")),CategoriesRow)
            End Get
            Set
                Me.SetParentRow(value, Me.Table.ParentRelations("CategoriesProducts"))
            End Set
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Function IsProductNameNull() As Boolean
            Return Me.IsNull(Me.tableProducts.ProductNameColumn)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Sub SetProductNameNull()
            Me(Me.tableProducts.ProductNameColumn) = System.Convert.DBNull
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Function IsSupplierIDNull() As Boolean
            Return Me.IsNull(Me.tableProducts.SupplierIDColumn)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Sub SetSupplierIDNull()
            Me(Me.tableProducts.SupplierIDColumn) = System.Convert.DBNull
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Function IsCategoryIDNull() As Boolean
            Return Me.IsNull(Me.tableProducts.CategoryIDColumn)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Sub SetCategoryIDNull()
            Me(Me.tableProducts.CategoryIDColumn) = System.Convert.DBNull
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Function IsQuantityPerUnitNull() As Boolean
            Return Me.IsNull(Me.tableProducts.QuantityPerUnitColumn)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Sub SetQuantityPerUnitNull()
            Me(Me.tableProducts.QuantityPerUnitColumn) = System.Convert.DBNull
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Function IsUnitPriceNull() As Boolean
            Return Me.IsNull(Me.tableProducts.UnitPriceColumn)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Sub SetUnitPriceNull()
            Me(Me.tableProducts.UnitPriceColumn) = System.Convert.DBNull
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Function IsUnitsInStockNull() As Boolean
            Return Me.IsNull(Me.tableProducts.UnitsInStockColumn)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Sub SetUnitsInStockNull()
            Me(Me.tableProducts.UnitsInStockColumn) = System.Convert.DBNull
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Function IsUnitsOnOrderNull() As Boolean
            Return Me.IsNull(Me.tableProducts.UnitsOnOrderColumn)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Sub SetUnitsOnOrderNull()
            Me(Me.tableProducts.UnitsOnOrderColumn) = System.Convert.DBNull
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Function IsReorderLevelNull() As Boolean
            Return Me.IsNull(Me.tableProducts.ReorderLevelColumn)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Sub SetReorderLevelNull()
            Me(Me.tableProducts.ReorderLevelColumn) = System.Convert.DBNull
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Function IsDiscontinuedNull() As Boolean
            Return Me.IsNull(Me.tableProducts.DiscontinuedColumn)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Sub SetDiscontinuedNull()
            Me(Me.tableProducts.DiscontinuedColumn) = System.Convert.DBNull
        End Sub
    End Class
    
    <System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")>  _
    Public Class CategoriesRowChangeEvent
        Inherits System.EventArgs
        
        Private eventRow As CategoriesRow
        
        Private eventAction As System.Data.DataRowAction
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Sub New(ByVal row As CategoriesRow, ByVal action As System.Data.DataRowAction)
            MyBase.New
            Me.eventRow = row
            Me.eventAction = action
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public ReadOnly Property Row() As CategoriesRow
            Get
                Return Me.eventRow
            End Get
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public ReadOnly Property Action() As System.Data.DataRowAction
            Get
                Return Me.eventAction
            End Get
        End Property
    End Class
    
    <System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")>  _
    Public Class ProductsRowChangeEvent
        Inherits System.EventArgs
        
        Private eventRow As ProductsRow
        
        Private eventAction As System.Data.DataRowAction
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Sub New(ByVal row As ProductsRow, ByVal action As System.Data.DataRowAction)
            MyBase.New
            Me.eventRow = row
            Me.eventAction = action
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public ReadOnly Property Row() As ProductsRow
            Get
                Return Me.eventRow
            End Get
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public ReadOnly Property Action() As System.Data.DataRowAction
            Get
                Return Me.eventAction
            End Get
        End Property
    End Class
End Class

Namespace northwindDataSetTableAdapters
    
    <System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0"),  _
     System.ComponentModel.DesignerCategoryAttribute("code"),  _
     System.ComponentModel.ToolboxItem(true),  _
     System.ComponentModel.DataObjectAttribute(true),  _
     System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner"& _ 
        ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"),  _
     System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")>  _
    Partial Public Class CategoriesTableAdapter
        Inherits System.ComponentModel.Component
        
        Private WithEvents _adapter As System.Data.OleDb.OleDbDataAdapter
        
        Private _connection As System.Data.OleDb.OleDbConnection
        
        Private _commandCollection() As System.Data.OleDb.OleDbCommand
        
        Private _clearBeforeFill As Boolean
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Sub New()
            MyBase.New
            Me.ClearBeforeFill = true
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Private ReadOnly Property Adapter() As System.Data.OleDb.OleDbDataAdapter
            Get
                If (Me._adapter Is Nothing) Then
                    Me.InitAdapter
                End If
                Return Me._adapter
            End Get
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Friend Property Connection() As System.Data.OleDb.OleDbConnection
            Get
                If (Me._connection Is Nothing) Then
                    Me.InitConnection
                End If
                Return Me._connection
            End Get
            Set
                Me._connection = value
                If (Not (Me.Adapter.InsertCommand) Is Nothing) Then
                    Me.Adapter.InsertCommand.Connection = value
                End If
                If (Not (Me.Adapter.DeleteCommand) Is Nothing) Then
                    Me.Adapter.DeleteCommand.Connection = value
                End If
                If (Not (Me.Adapter.UpdateCommand) Is Nothing) Then
                    Me.Adapter.UpdateCommand.Connection = value
                End If
                Dim i As Integer = 0
                Do While (i < Me.CommandCollection.Length)
                    If (Not (Me.CommandCollection(i)) Is Nothing) Then
                        CType(Me.CommandCollection(i),System.Data.OleDb.OleDbCommand).Connection = value
                    End If
                    i = (i + 1)
                Loop
            End Set
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Protected ReadOnly Property CommandCollection() As System.Data.OleDb.OleDbCommand()
            Get
                If (Me._commandCollection Is Nothing) Then
                    Me.InitCommandCollection
                End If
                Return Me._commandCollection
            End Get
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Property ClearBeforeFill() As Boolean
            Get
                Return Me._clearBeforeFill
            End Get
            Set
                Me._clearBeforeFill = value
            End Set
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Private Sub InitAdapter()
            Me._adapter = New System.Data.OleDb.OleDbDataAdapter
            Dim tableMapping As System.Data.Common.DataTableMapping = New System.Data.Common.DataTableMapping
            tableMapping.SourceTable = "Table"
            tableMapping.DataSetTable = "Categories"
            tableMapping.ColumnMappings.Add("CategoryID", "CategoryID")
            tableMapping.ColumnMappings.Add("CategoryName", "CategoryName")
            tableMapping.ColumnMappings.Add("Description", "Description")
            tableMapping.ColumnMappings.Add("Picture", "Picture")
            Me._adapter.TableMappings.Add(tableMapping)
            Me._adapter.DeleteCommand = New System.Data.OleDb.OleDbCommand
            Me._adapter.DeleteCommand.Connection = Me.Connection
            Me._adapter.DeleteCommand.CommandText = "DELETE FROM `Categories` WHERE ((`CategoryID` = ?) AND ((? = 1 AND `CategoryName`"& _ 
                " IS NULL) OR (`CategoryName` = ?)))"
            Me._adapter.DeleteCommand.CommandType = System.Data.CommandType.Text
            Me._adapter.DeleteCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_CategoryID", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "CategoryID", System.Data.DataRowVersion.Original, false, Nothing))
            Me._adapter.DeleteCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("IsNull_CategoryName", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "CategoryName", System.Data.DataRowVersion.Original, true, Nothing))
            Me._adapter.DeleteCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_CategoryName", System.Data.OleDb.OleDbType.VarWChar, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "CategoryName", System.Data.DataRowVersion.Original, false, Nothing))
            Me._adapter.InsertCommand = New System.Data.OleDb.OleDbCommand
            Me._adapter.InsertCommand.Connection = Me.Connection
            Me._adapter.InsertCommand.CommandText = "INSERT INTO `Categories` (`CategoryName`, `Description`, `Picture`) VALUES (?, ?,"& _ 
                " ?)"
            Me._adapter.InsertCommand.CommandType = System.Data.CommandType.Text
            Me._adapter.InsertCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("CategoryName", System.Data.OleDb.OleDbType.VarWChar, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "CategoryName", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.InsertCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Description", System.Data.OleDb.OleDbType.LongVarWChar, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "Description", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.InsertCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Picture", System.Data.OleDb.OleDbType.LongVarBinary, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "Picture", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.UpdateCommand = New System.Data.OleDb.OleDbCommand
            Me._adapter.UpdateCommand.Connection = Me.Connection
            Me._adapter.UpdateCommand.CommandText = "UPDATE `Categories` SET `CategoryName` = ?, `Description` = ?, `Picture` = ? WHER"& _ 
                "E ((`CategoryID` = ?) AND ((? = 1 AND `CategoryName` IS NULL) OR (`CategoryName`"& _ 
                " = ?)))"
            Me._adapter.UpdateCommand.CommandType = System.Data.CommandType.Text
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("CategoryName", System.Data.OleDb.OleDbType.VarWChar, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "CategoryName", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Description", System.Data.OleDb.OleDbType.LongVarWChar, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "Description", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Picture", System.Data.OleDb.OleDbType.LongVarBinary, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "Picture", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_CategoryID", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "CategoryID", System.Data.DataRowVersion.Original, false, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("IsNull_CategoryName", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "CategoryName", System.Data.DataRowVersion.Original, true, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_CategoryName", System.Data.OleDb.OleDbType.VarWChar, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "CategoryName", System.Data.DataRowVersion.Original, false, Nothing))
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Private Sub InitConnection()
            Me._connection = New System.Data.OleDb.OleDbConnection
            Me._connection.ConnectionString = Global.DemoMSDN.My.MySettings.Default.northwindConnectionString
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Private Sub InitCommandCollection()
            Me._commandCollection = New System.Data.OleDb.OleDbCommand(0) {}
            Me._commandCollection(0) = New System.Data.OleDb.OleDbCommand
            Me._commandCollection(0).Connection = Me.Connection
            Me._commandCollection(0).CommandText = "SELECT CategoryID, CategoryName, Description, Picture FROM Categories"
            Me._commandCollection(0).CommandType = System.Data.CommandType.Text
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
         System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter"),  _
         System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Fill, true)>  _
        Public Overloads Overridable Function Fill(ByVal dataTable As northwindDataSet.CategoriesDataTable) As Integer
            Me.Adapter.SelectCommand = Me.CommandCollection(0)
            If (Me.ClearBeforeFill = true) Then
                dataTable.Clear
            End If
            Dim returnValue As Integer = Me.Adapter.Fill(dataTable)
            Return returnValue
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
         System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter"),  _
         System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.[Select], true)>  _
        Public Overloads Overridable Function GetData() As northwindDataSet.CategoriesDataTable
            Me.Adapter.SelectCommand = Me.CommandCollection(0)
            Dim dataTable As northwindDataSet.CategoriesDataTable = New northwindDataSet.CategoriesDataTable
            Me.Adapter.Fill(dataTable)
            Return dataTable
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
         System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")>  _
        Public Overloads Overridable Function Update(ByVal dataTable As northwindDataSet.CategoriesDataTable) As Integer
            Return Me.Adapter.Update(dataTable)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
         System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")>  _
        Public Overloads Overridable Function Update(ByVal dataSet As northwindDataSet) As Integer
            Return Me.Adapter.Update(dataSet, "Categories")
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
         System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")>  _
        Public Overloads Overridable Function Update(ByVal dataRow As System.Data.DataRow) As Integer
            Return Me.Adapter.Update(New System.Data.DataRow() {dataRow})
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
         System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")>  _
        Public Overloads Overridable Function Update(ByVal dataRows() As System.Data.DataRow) As Integer
            Return Me.Adapter.Update(dataRows)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
         System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter"),  _
         System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Delete, true)>  _
        Public Overloads Overridable Function Delete(ByVal Original_CategoryID As Integer, ByVal Original_CategoryName As String) As Integer
            Me.Adapter.DeleteCommand.Parameters(0).Value = CType(Original_CategoryID,Integer)
            If (Original_CategoryName Is Nothing) Then
                Throw New System.ArgumentNullException("Original_CategoryName")
            Else
                Me.Adapter.DeleteCommand.Parameters(1).Value = CType(0,Object)
                Me.Adapter.DeleteCommand.Parameters(2).Value = CType(Original_CategoryName,String)
            End If
            Dim previousConnectionState As System.Data.ConnectionState = Me.Adapter.DeleteCommand.Connection.State
            If ((Me.Adapter.DeleteCommand.Connection.State And System.Data.ConnectionState.Open)  _
                        <> System.Data.ConnectionState.Open) Then
                Me.Adapter.DeleteCommand.Connection.Open
            End If
            Try 
                Dim returnValue As Integer = Me.Adapter.DeleteCommand.ExecuteNonQuery
                Return returnValue
            Finally
                If (previousConnectionState = System.Data.ConnectionState.Closed) Then
                    Me.Adapter.DeleteCommand.Connection.Close
                End If
            End Try
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
         System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter"),  _
         System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, true)>  _
        Public Overloads Overridable Function Insert(ByVal CategoryName As String, ByVal Description As String, ByVal Picture() As Byte) As Integer
            If (CategoryName Is Nothing) Then
                Throw New System.ArgumentNullException("CategoryName")
            Else
                Me.Adapter.InsertCommand.Parameters(0).Value = CType(CategoryName,String)
            End If
            If (Description Is Nothing) Then
                Me.Adapter.InsertCommand.Parameters(1).Value = System.DBNull.Value
            Else
                Me.Adapter.InsertCommand.Parameters(1).Value = CType(Description,String)
            End If
            If (Picture Is Nothing) Then
                Me.Adapter.InsertCommand.Parameters(2).Value = System.DBNull.Value
            Else
                Me.Adapter.InsertCommand.Parameters(2).Value = CType(Picture,Byte())
            End If
            Dim previousConnectionState As System.Data.ConnectionState = Me.Adapter.InsertCommand.Connection.State
            If ((Me.Adapter.InsertCommand.Connection.State And System.Data.ConnectionState.Open)  _
                        <> System.Data.ConnectionState.Open) Then
                Me.Adapter.InsertCommand.Connection.Open
            End If
            Try 
                Dim returnValue As Integer = Me.Adapter.InsertCommand.ExecuteNonQuery
                Return returnValue
            Finally
                If (previousConnectionState = System.Data.ConnectionState.Closed) Then
                    Me.Adapter.InsertCommand.Connection.Close
                End If
            End Try
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
         System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter"),  _
         System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)>  _
        Public Overloads Overridable Function Update(ByVal CategoryName As String, ByVal Description As String, ByVal Picture() As Byte, ByVal Original_CategoryID As Integer, ByVal Original_CategoryName As String) As Integer
            If (CategoryName Is Nothing) Then
                Throw New System.ArgumentNullException("CategoryName")
            Else
                Me.Adapter.UpdateCommand.Parameters(0).Value = CType(CategoryName,String)
            End If
            If (Description Is Nothing) Then
                Me.Adapter.UpdateCommand.Parameters(1).Value = System.DBNull.Value
            Else
                Me.Adapter.UpdateCommand.Parameters(1).Value = CType(Description,String)
            End If
            If (Picture Is Nothing) Then
                Me.Adapter.UpdateCommand.Parameters(2).Value = System.DBNull.Value
            Else
                Me.Adapter.UpdateCommand.Parameters(2).Value = CType(Picture,Byte())
            End If
            Me.Adapter.UpdateCommand.Parameters(3).Value = CType(Original_CategoryID,Integer)
            If (Original_CategoryName Is Nothing) Then
                Throw New System.ArgumentNullException("Original_CategoryName")
            Else
                Me.Adapter.UpdateCommand.Parameters(4).Value = CType(0,Object)
                Me.Adapter.UpdateCommand.Parameters(5).Value = CType(Original_CategoryName,String)
            End If
            Dim previousConnectionState As System.Data.ConnectionState = Me.Adapter.UpdateCommand.Connection.State
            If ((Me.Adapter.UpdateCommand.Connection.State And System.Data.ConnectionState.Open)  _
                        <> System.Data.ConnectionState.Open) Then
                Me.Adapter.UpdateCommand.Connection.Open
            End If
            Try 
                Dim returnValue As Integer = Me.Adapter.UpdateCommand.ExecuteNonQuery
                Return returnValue
            Finally
                If (previousConnectionState = System.Data.ConnectionState.Closed) Then
                    Me.Adapter.UpdateCommand.Connection.Close
                End If
            End Try
        End Function
    End Class
    
    <System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0"),  _
     System.ComponentModel.DesignerCategoryAttribute("code"),  _
     System.ComponentModel.ToolboxItem(true),  _
     System.ComponentModel.DataObjectAttribute(true),  _
     System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner"& _ 
        ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"),  _
     System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")>  _
    Partial Public Class ProductsTableAdapter
        Inherits System.ComponentModel.Component
        
        Private WithEvents _adapter As System.Data.OleDb.OleDbDataAdapter
        
        Private _connection As System.Data.OleDb.OleDbConnection
        
        Private _commandCollection() As System.Data.OleDb.OleDbCommand
        
        Private _clearBeforeFill As Boolean
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Sub New()
            MyBase.New
            Me.ClearBeforeFill = true
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Private ReadOnly Property Adapter() As System.Data.OleDb.OleDbDataAdapter
            Get
                If (Me._adapter Is Nothing) Then
                    Me.InitAdapter
                End If
                Return Me._adapter
            End Get
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Friend Property Connection() As System.Data.OleDb.OleDbConnection
            Get
                If (Me._connection Is Nothing) Then
                    Me.InitConnection
                End If
                Return Me._connection
            End Get
            Set
                Me._connection = value
                If (Not (Me.Adapter.InsertCommand) Is Nothing) Then
                    Me.Adapter.InsertCommand.Connection = value
                End If
                If (Not (Me.Adapter.DeleteCommand) Is Nothing) Then
                    Me.Adapter.DeleteCommand.Connection = value
                End If
                If (Not (Me.Adapter.UpdateCommand) Is Nothing) Then
                    Me.Adapter.UpdateCommand.Connection = value
                End If
                Dim i As Integer = 0
                Do While (i < Me.CommandCollection.Length)
                    If (Not (Me.CommandCollection(i)) Is Nothing) Then
                        CType(Me.CommandCollection(i),System.Data.OleDb.OleDbCommand).Connection = value
                    End If
                    i = (i + 1)
                Loop
            End Set
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Protected ReadOnly Property CommandCollection() As System.Data.OleDb.OleDbCommand()
            Get
                If (Me._commandCollection Is Nothing) Then
                    Me.InitCommandCollection
                End If
                Return Me._commandCollection
            End Get
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Public Property ClearBeforeFill() As Boolean
            Get
                Return Me._clearBeforeFill
            End Get
            Set
                Me._clearBeforeFill = value
            End Set
        End Property
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Private Sub InitAdapter()
            Me._adapter = New System.Data.OleDb.OleDbDataAdapter
            Dim tableMapping As System.Data.Common.DataTableMapping = New System.Data.Common.DataTableMapping
            tableMapping.SourceTable = "Table"
            tableMapping.DataSetTable = "Products"
            tableMapping.ColumnMappings.Add("ProductID", "ProductID")
            tableMapping.ColumnMappings.Add("ProductName", "ProductName")
            tableMapping.ColumnMappings.Add("SupplierID", "SupplierID")
            tableMapping.ColumnMappings.Add("CategoryID", "CategoryID")
            tableMapping.ColumnMappings.Add("QuantityPerUnit", "QuantityPerUnit")
            tableMapping.ColumnMappings.Add("UnitPrice", "UnitPrice")
            tableMapping.ColumnMappings.Add("UnitsInStock", "UnitsInStock")
            tableMapping.ColumnMappings.Add("UnitsOnOrder", "UnitsOnOrder")
            tableMapping.ColumnMappings.Add("ReorderLevel", "ReorderLevel")
            tableMapping.ColumnMappings.Add("Discontinued", "Discontinued")
            Me._adapter.TableMappings.Add(tableMapping)
            Me._adapter.DeleteCommand = New System.Data.OleDb.OleDbCommand
            Me._adapter.DeleteCommand.Connection = Me.Connection
            Me._adapter.DeleteCommand.CommandText = "DELETE FROM `Products` WHERE ((`ProductID` = ?) AND ((? = 1 AND `ProductName` IS "& _ 
                "NULL) OR (`ProductName` = ?)) AND ((? = 1 AND `SupplierID` IS NULL) OR (`Supplie"& _ 
                "rID` = ?)) AND ((? = 1 AND `CategoryID` IS NULL) OR (`CategoryID` = ?)) AND ((? "& _ 
                "= 1 AND `QuantityPerUnit` IS NULL) OR (`QuantityPerUnit` = ?)) AND ((? = 1 AND `"& _ 
                "UnitPrice` IS NULL) OR (`UnitPrice` = ?)) AND ((? = 1 AND `UnitsInStock` IS NULL"& _ 
                ") OR (`UnitsInStock` = ?)) AND ((? = 1 AND `UnitsOnOrder` IS NULL) OR (`UnitsOnO"& _ 
                "rder` = ?)) AND ((? = 1 AND `ReorderLevel` IS NULL) OR (`ReorderLevel` = ?)) AND"& _ 
                " ((? = 1 AND `Discontinued` IS NULL) OR (`Discontinued` = ?)))"
            Me._adapter.DeleteCommand.CommandType = System.Data.CommandType.Text
            Me._adapter.DeleteCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_ProductID", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "ProductID", System.Data.DataRowVersion.Original, false, Nothing))
            Me._adapter.DeleteCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("IsNull_ProductName", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "ProductName", System.Data.DataRowVersion.Original, true, Nothing))
            Me._adapter.DeleteCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_ProductName", System.Data.OleDb.OleDbType.VarWChar, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "ProductName", System.Data.DataRowVersion.Original, false, Nothing))
            Me._adapter.DeleteCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("IsNull_SupplierID", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "SupplierID", System.Data.DataRowVersion.Original, true, Nothing))
            Me._adapter.DeleteCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_SupplierID", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "SupplierID", System.Data.DataRowVersion.Original, false, Nothing))
            Me._adapter.DeleteCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("IsNull_CategoryID", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "CategoryID", System.Data.DataRowVersion.Original, true, Nothing))
            Me._adapter.DeleteCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_CategoryID", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "CategoryID", System.Data.DataRowVersion.Original, false, Nothing))
            Me._adapter.DeleteCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("IsNull_QuantityPerUnit", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "QuantityPerUnit", System.Data.DataRowVersion.Original, true, Nothing))
            Me._adapter.DeleteCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_QuantityPerUnit", System.Data.OleDb.OleDbType.VarWChar, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "QuantityPerUnit", System.Data.DataRowVersion.Original, false, Nothing))
            Me._adapter.DeleteCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("IsNull_UnitPrice", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "UnitPrice", System.Data.DataRowVersion.Original, true, Nothing))
            Me._adapter.DeleteCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_UnitPrice", System.Data.OleDb.OleDbType.Currency, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "UnitPrice", System.Data.DataRowVersion.Original, false, Nothing))
            Me._adapter.DeleteCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("IsNull_UnitsInStock", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "UnitsInStock", System.Data.DataRowVersion.Original, true, Nothing))
            Me._adapter.DeleteCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_UnitsInStock", System.Data.OleDb.OleDbType.SmallInt, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "UnitsInStock", System.Data.DataRowVersion.Original, false, Nothing))
            Me._adapter.DeleteCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("IsNull_UnitsOnOrder", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "UnitsOnOrder", System.Data.DataRowVersion.Original, true, Nothing))
            Me._adapter.DeleteCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_UnitsOnOrder", System.Data.OleDb.OleDbType.SmallInt, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "UnitsOnOrder", System.Data.DataRowVersion.Original, false, Nothing))
            Me._adapter.DeleteCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("IsNull_ReorderLevel", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "ReorderLevel", System.Data.DataRowVersion.Original, true, Nothing))
            Me._adapter.DeleteCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_ReorderLevel", System.Data.OleDb.OleDbType.SmallInt, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "ReorderLevel", System.Data.DataRowVersion.Original, false, Nothing))
            Me._adapter.DeleteCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("IsNull_Discontinued", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "Discontinued", System.Data.DataRowVersion.Original, true, Nothing))
            Me._adapter.DeleteCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_Discontinued", System.Data.OleDb.OleDbType.[Boolean], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "Discontinued", System.Data.DataRowVersion.Original, false, Nothing))
            Me._adapter.InsertCommand = New System.Data.OleDb.OleDbCommand
            Me._adapter.InsertCommand.Connection = Me.Connection
            Me._adapter.InsertCommand.CommandText = "INSERT INTO `Products` (`ProductName`, `SupplierID`, `CategoryID`, `QuantityPerUn"& _ 
                "it`, `UnitPrice`, `UnitsInStock`, `UnitsOnOrder`, `ReorderLevel`, `Discontinued`"& _ 
                ") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"
            Me._adapter.InsertCommand.CommandType = System.Data.CommandType.Text
            Me._adapter.InsertCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("ProductName", System.Data.OleDb.OleDbType.VarWChar, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "ProductName", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.InsertCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("SupplierID", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "SupplierID", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.InsertCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("CategoryID", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "CategoryID", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.InsertCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("QuantityPerUnit", System.Data.OleDb.OleDbType.VarWChar, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "QuantityPerUnit", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.InsertCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("UnitPrice", System.Data.OleDb.OleDbType.Currency, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "UnitPrice", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.InsertCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("UnitsInStock", System.Data.OleDb.OleDbType.SmallInt, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "UnitsInStock", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.InsertCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("UnitsOnOrder", System.Data.OleDb.OleDbType.SmallInt, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "UnitsOnOrder", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.InsertCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("ReorderLevel", System.Data.OleDb.OleDbType.SmallInt, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "ReorderLevel", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.InsertCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Discontinued", System.Data.OleDb.OleDbType.[Boolean], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "Discontinued", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.UpdateCommand = New System.Data.OleDb.OleDbCommand
            Me._adapter.UpdateCommand.Connection = Me.Connection
            Me._adapter.UpdateCommand.CommandText = "UPDATE `Products` SET `ProductName` = ?, `SupplierID` = ?, `CategoryID` = ?, `Qua"& _ 
                "ntityPerUnit` = ?, `UnitPrice` = ?, `UnitsInStock` = ?, `UnitsOnOrder` = ?, `Reo"& _ 
                "rderLevel` = ?, `Discontinued` = ? WHERE ((`ProductID` = ?) AND ((? = 1 AND `Pro"& _ 
                "ductName` IS NULL) OR (`ProductName` = ?)) AND ((? = 1 AND `SupplierID` IS NULL)"& _ 
                " OR (`SupplierID` = ?)) AND ((? = 1 AND `CategoryID` IS NULL) OR (`CategoryID` ="& _ 
                " ?)) AND ((? = 1 AND `QuantityPerUnit` IS NULL) OR (`QuantityPerUnit` = ?)) AND "& _ 
                "((? = 1 AND `UnitPrice` IS NULL) OR (`UnitPrice` = ?)) AND ((? = 1 AND `UnitsInS"& _ 
                "tock` IS NULL) OR (`UnitsInStock` = ?)) AND ((? = 1 AND `UnitsOnOrder` IS NULL) "& _ 
                "OR (`UnitsOnOrder` = ?)) AND ((? = 1 AND `ReorderLevel` IS NULL) OR (`ReorderLev"& _ 
                "el` = ?)) AND ((? = 1 AND `Discontinued` IS NULL) OR (`Discontinued` = ?)))"
            Me._adapter.UpdateCommand.CommandType = System.Data.CommandType.Text
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("ProductName", System.Data.OleDb.OleDbType.VarWChar, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "ProductName", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("SupplierID", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "SupplierID", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("CategoryID", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "CategoryID", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("QuantityPerUnit", System.Data.OleDb.OleDbType.VarWChar, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "QuantityPerUnit", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("UnitPrice", System.Data.OleDb.OleDbType.Currency, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "UnitPrice", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("UnitsInStock", System.Data.OleDb.OleDbType.SmallInt, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "UnitsInStock", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("UnitsOnOrder", System.Data.OleDb.OleDbType.SmallInt, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "UnitsOnOrder", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("ReorderLevel", System.Data.OleDb.OleDbType.SmallInt, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "ReorderLevel", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Discontinued", System.Data.OleDb.OleDbType.[Boolean], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "Discontinued", System.Data.DataRowVersion.Current, false, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_ProductID", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "ProductID", System.Data.DataRowVersion.Original, false, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("IsNull_ProductName", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "ProductName", System.Data.DataRowVersion.Original, true, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_ProductName", System.Data.OleDb.OleDbType.VarWChar, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "ProductName", System.Data.DataRowVersion.Original, false, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("IsNull_SupplierID", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "SupplierID", System.Data.DataRowVersion.Original, true, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_SupplierID", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "SupplierID", System.Data.DataRowVersion.Original, false, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("IsNull_CategoryID", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "CategoryID", System.Data.DataRowVersion.Original, true, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_CategoryID", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "CategoryID", System.Data.DataRowVersion.Original, false, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("IsNull_QuantityPerUnit", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "QuantityPerUnit", System.Data.DataRowVersion.Original, true, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_QuantityPerUnit", System.Data.OleDb.OleDbType.VarWChar, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "QuantityPerUnit", System.Data.DataRowVersion.Original, false, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("IsNull_UnitPrice", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "UnitPrice", System.Data.DataRowVersion.Original, true, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_UnitPrice", System.Data.OleDb.OleDbType.Currency, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "UnitPrice", System.Data.DataRowVersion.Original, false, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("IsNull_UnitsInStock", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "UnitsInStock", System.Data.DataRowVersion.Original, true, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_UnitsInStock", System.Data.OleDb.OleDbType.SmallInt, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "UnitsInStock", System.Data.DataRowVersion.Original, false, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("IsNull_UnitsOnOrder", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "UnitsOnOrder", System.Data.DataRowVersion.Original, true, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_UnitsOnOrder", System.Data.OleDb.OleDbType.SmallInt, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "UnitsOnOrder", System.Data.DataRowVersion.Original, false, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("IsNull_ReorderLevel", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "ReorderLevel", System.Data.DataRowVersion.Original, true, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_ReorderLevel", System.Data.OleDb.OleDbType.SmallInt, 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "ReorderLevel", System.Data.DataRowVersion.Original, false, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("IsNull_Discontinued", System.Data.OleDb.OleDbType.[Integer], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "Discontinued", System.Data.DataRowVersion.Original, true, Nothing))
            Me._adapter.UpdateCommand.Parameters.Add(New System.Data.OleDb.OleDbParameter("Original_Discontinued", System.Data.OleDb.OleDbType.[Boolean], 0, System.Data.ParameterDirection.Input, CType(0,Byte), CType(0,Byte), "Discontinued", System.Data.DataRowVersion.Original, false, Nothing))
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Private Sub InitConnection()
            Me._connection = New System.Data.OleDb.OleDbConnection
            Me._connection.ConnectionString = Global.DemoMSDN.My.MySettings.Default.northwindConnectionString
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute()>  _
        Private Sub InitCommandCollection()
            Me._commandCollection = New System.Data.OleDb.OleDbCommand(0) {}
            Me._commandCollection(0) = New System.Data.OleDb.OleDbCommand
            Me._commandCollection(0).Connection = Me.Connection
            Me._commandCollection(0).CommandText = "SELECT ProductID, ProductName, SupplierID, CategoryID, QuantityPerUnit, UnitPrice"& _ 
                ", UnitsInStock, UnitsOnOrder, ReorderLevel, Discontinued FROM Products"
            Me._commandCollection(0).CommandType = System.Data.CommandType.Text
        End Sub
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
         System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter"),  _
         System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Fill, true)>  _
        Public Overloads Overridable Function Fill(ByVal dataTable As northwindDataSet.ProductsDataTable) As Integer
            Me.Adapter.SelectCommand = Me.CommandCollection(0)
            If (Me.ClearBeforeFill = true) Then
                dataTable.Clear
            End If
            Dim returnValue As Integer = Me.Adapter.Fill(dataTable)
            Return returnValue
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
         System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter"),  _
         System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.[Select], true)>  _
        Public Overloads Overridable Function GetData() As northwindDataSet.ProductsDataTable
            Me.Adapter.SelectCommand = Me.CommandCollection(0)
            Dim dataTable As northwindDataSet.ProductsDataTable = New northwindDataSet.ProductsDataTable
            Me.Adapter.Fill(dataTable)
            Return dataTable
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
         System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")>  _
        Public Overloads Overridable Function Update(ByVal dataTable As northwindDataSet.ProductsDataTable) As Integer
            Return Me.Adapter.Update(dataTable)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
         System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")>  _
        Public Overloads Overridable Function Update(ByVal dataSet As northwindDataSet) As Integer
            Return Me.Adapter.Update(dataSet, "Products")
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
         System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")>  _
        Public Overloads Overridable Function Update(ByVal dataRow As System.Data.DataRow) As Integer
            Return Me.Adapter.Update(New System.Data.DataRow() {dataRow})
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
         System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")>  _
        Public Overloads Overridable Function Update(ByVal dataRows() As System.Data.DataRow) As Integer
            Return Me.Adapter.Update(dataRows)
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
         System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter"),  _
         System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Delete, true)>  _
        Public Overloads Overridable Function Delete(ByVal Original_ProductID As Integer, ByVal Original_ProductName As String, ByVal Original_SupplierID As System.Nullable(Of Integer), ByVal Original_CategoryID As System.Nullable(Of Integer), ByVal Original_QuantityPerUnit As String, ByVal Original_UnitPrice As System.Nullable(Of Decimal), ByVal Original_UnitsInStock As System.Nullable(Of Short), ByVal Original_UnitsOnOrder As System.Nullable(Of Short), ByVal Original_ReorderLevel As System.Nullable(Of Short), ByVal Original_Discontinued As Boolean) As Integer
            Me.Adapter.DeleteCommand.Parameters(0).Value = CType(Original_ProductID,Integer)
            If (Original_ProductName Is Nothing) Then
                Throw New System.ArgumentNullException("Original_ProductName")
            Else
                Me.Adapter.DeleteCommand.Parameters(1).Value = CType(0,Object)
                Me.Adapter.DeleteCommand.Parameters(2).Value = CType(Original_ProductName,String)
            End If
            If (Original_SupplierID.HasValue = true) Then
                Me.Adapter.DeleteCommand.Parameters(3).Value = CType(0,Object)
                Me.Adapter.DeleteCommand.Parameters(4).Value = CType(Original_SupplierID.Value,Integer)
            Else
                Me.Adapter.DeleteCommand.Parameters(3).Value = CType(1,Object)
                Me.Adapter.DeleteCommand.Parameters(4).Value = System.DBNull.Value
            End If
            If (Original_CategoryID.HasValue = true) Then
                Me.Adapter.DeleteCommand.Parameters(5).Value = CType(0,Object)
                Me.Adapter.DeleteCommand.Parameters(6).Value = CType(Original_CategoryID.Value,Integer)
            Else
                Me.Adapter.DeleteCommand.Parameters(5).Value = CType(1,Object)
                Me.Adapter.DeleteCommand.Parameters(6).Value = System.DBNull.Value
            End If
            If (Original_QuantityPerUnit Is Nothing) Then
                Me.Adapter.DeleteCommand.Parameters(7).Value = CType(1,Object)
                Me.Adapter.DeleteCommand.Parameters(8).Value = System.DBNull.Value
            Else
                Me.Adapter.DeleteCommand.Parameters(7).Value = CType(0,Object)
                Me.Adapter.DeleteCommand.Parameters(8).Value = CType(Original_QuantityPerUnit,String)
            End If
            If (Original_UnitPrice.HasValue = true) Then
                Me.Adapter.DeleteCommand.Parameters(9).Value = CType(0,Object)
                Me.Adapter.DeleteCommand.Parameters(10).Value = CType(Original_UnitPrice.Value,Decimal)
            Else
                Me.Adapter.DeleteCommand.Parameters(9).Value = CType(1,Object)
                Me.Adapter.DeleteCommand.Parameters(10).Value = System.DBNull.Value
            End If
            If (Original_UnitsInStock.HasValue = true) Then
                Me.Adapter.DeleteCommand.Parameters(11).Value = CType(0,Object)
                Me.Adapter.DeleteCommand.Parameters(12).Value = CType(Original_UnitsInStock.Value,Short)
            Else
                Me.Adapter.DeleteCommand.Parameters(11).Value = CType(1,Object)
                Me.Adapter.DeleteCommand.Parameters(12).Value = System.DBNull.Value
            End If
            If (Original_UnitsOnOrder.HasValue = true) Then
                Me.Adapter.DeleteCommand.Parameters(13).Value = CType(0,Object)
                Me.Adapter.DeleteCommand.Parameters(14).Value = CType(Original_UnitsOnOrder.Value,Short)
            Else
                Me.Adapter.DeleteCommand.Parameters(13).Value = CType(1,Object)
                Me.Adapter.DeleteCommand.Parameters(14).Value = System.DBNull.Value
            End If
            If (Original_ReorderLevel.HasValue = true) Then
                Me.Adapter.DeleteCommand.Parameters(15).Value = CType(0,Object)
                Me.Adapter.DeleteCommand.Parameters(16).Value = CType(Original_ReorderLevel.Value,Short)
            Else
                Me.Adapter.DeleteCommand.Parameters(15).Value = CType(1,Object)
                Me.Adapter.DeleteCommand.Parameters(16).Value = System.DBNull.Value
            End If
            Me.Adapter.DeleteCommand.Parameters(17).Value = CType(0,Object)
            Me.Adapter.DeleteCommand.Parameters(18).Value = CType(Original_Discontinued,Boolean)
            Dim previousConnectionState As System.Data.ConnectionState = Me.Adapter.DeleteCommand.Connection.State
            If ((Me.Adapter.DeleteCommand.Connection.State And System.Data.ConnectionState.Open)  _
                        <> System.Data.ConnectionState.Open) Then
                Me.Adapter.DeleteCommand.Connection.Open
            End If
            Try 
                Dim returnValue As Integer = Me.Adapter.DeleteCommand.ExecuteNonQuery
                Return returnValue
            Finally
                If (previousConnectionState = System.Data.ConnectionState.Closed) Then
                    Me.Adapter.DeleteCommand.Connection.Close
                End If
            End Try
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
         System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter"),  _
         System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, true)>  _
        Public Overloads Overridable Function Insert(ByVal ProductName As String, ByVal SupplierID As System.Nullable(Of Integer), ByVal CategoryID As System.Nullable(Of Integer), ByVal QuantityPerUnit As String, ByVal UnitPrice As System.Nullable(Of Decimal), ByVal UnitsInStock As System.Nullable(Of Short), ByVal UnitsOnOrder As System.Nullable(Of Short), ByVal ReorderLevel As System.Nullable(Of Short), ByVal Discontinued As Boolean) As Integer
            If (ProductName Is Nothing) Then
                Throw New System.ArgumentNullException("ProductName")
            Else
                Me.Adapter.InsertCommand.Parameters(0).Value = CType(ProductName,String)
            End If
            If (SupplierID.HasValue = true) Then
                Me.Adapter.InsertCommand.Parameters(1).Value = CType(SupplierID.Value,Integer)
            Else
                Me.Adapter.InsertCommand.Parameters(1).Value = System.DBNull.Value
            End If
            If (CategoryID.HasValue = true) Then
                Me.Adapter.InsertCommand.Parameters(2).Value = CType(CategoryID.Value,Integer)
            Else
                Me.Adapter.InsertCommand.Parameters(2).Value = System.DBNull.Value
            End If
            If (QuantityPerUnit Is Nothing) Then
                Me.Adapter.InsertCommand.Parameters(3).Value = System.DBNull.Value
            Else
                Me.Adapter.InsertCommand.Parameters(3).Value = CType(QuantityPerUnit,String)
            End If
            If (UnitPrice.HasValue = true) Then
                Me.Adapter.InsertCommand.Parameters(4).Value = CType(UnitPrice.Value,Decimal)
            Else
                Me.Adapter.InsertCommand.Parameters(4).Value = System.DBNull.Value
            End If
            If (UnitsInStock.HasValue = true) Then
                Me.Adapter.InsertCommand.Parameters(5).Value = CType(UnitsInStock.Value,Short)
            Else
                Me.Adapter.InsertCommand.Parameters(5).Value = System.DBNull.Value
            End If
            If (UnitsOnOrder.HasValue = true) Then
                Me.Adapter.InsertCommand.Parameters(6).Value = CType(UnitsOnOrder.Value,Short)
            Else
                Me.Adapter.InsertCommand.Parameters(6).Value = System.DBNull.Value
            End If
            If (ReorderLevel.HasValue = true) Then
                Me.Adapter.InsertCommand.Parameters(7).Value = CType(ReorderLevel.Value,Short)
            Else
                Me.Adapter.InsertCommand.Parameters(7).Value = System.DBNull.Value
            End If
            Me.Adapter.InsertCommand.Parameters(8).Value = CType(Discontinued,Boolean)
            Dim previousConnectionState As System.Data.ConnectionState = Me.Adapter.InsertCommand.Connection.State
            If ((Me.Adapter.InsertCommand.Connection.State And System.Data.ConnectionState.Open)  _
                        <> System.Data.ConnectionState.Open) Then
                Me.Adapter.InsertCommand.Connection.Open
            End If
            Try 
                Dim returnValue As Integer = Me.Adapter.InsertCommand.ExecuteNonQuery
                Return returnValue
            Finally
                If (previousConnectionState = System.Data.ConnectionState.Closed) Then
                    Me.Adapter.InsertCommand.Connection.Close
                End If
            End Try
        End Function
        
        <System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
         System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter"),  _
         System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)>  _
        Public Overloads Overridable Function Update( _
                    ByVal ProductName As String,  _
                    ByVal SupplierID As System.Nullable(Of Integer),  _
                    ByVal CategoryID As System.Nullable(Of Integer),  _
                    ByVal QuantityPerUnit As String,  _
                    ByVal UnitPrice As System.Nullable(Of Decimal),  _
                    ByVal UnitsInStock As System.Nullable(Of Short),  _
                    ByVal UnitsOnOrder As System.Nullable(Of Short),  _
                    ByVal ReorderLevel As System.Nullable(Of Short),  _
                    ByVal Discontinued As Boolean,  _
                    ByVal Original_ProductID As Integer,  _
                    ByVal Original_ProductName As String,  _
                    ByVal Original_SupplierID As System.Nullable(Of Integer),  _
                    ByVal Original_CategoryID As System.Nullable(Of Integer),  _
                    ByVal Original_QuantityPerUnit As String,  _
                    ByVal Original_UnitPrice As System.Nullable(Of Decimal),  _
                    ByVal Original_UnitsInStock As System.Nullable(Of Short),  _
                    ByVal Original_UnitsOnOrder As System.Nullable(Of Short),  _
                    ByVal Original_ReorderLevel As System.Nullable(Of Short),  _
                    ByVal Original_Discontinued As Boolean) As Integer
            If (ProductName Is Nothing) Then
                Throw New System.ArgumentNullException("ProductName")
            Else
                Me.Adapter.UpdateCommand.Parameters(0).Value = CType(ProductName,String)
            End If
            If (SupplierID.HasValue = true) Then
                Me.Adapter.UpdateCommand.Parameters(1).Value = CType(SupplierID.Value,Integer)
            Else
                Me.Adapter.UpdateCommand.Parameters(1).Value = System.DBNull.Value
            End If
            If (CategoryID.HasValue = true) Then
                Me.Adapter.UpdateCommand.Parameters(2).Value = CType(CategoryID.Value,Integer)
            Else
                Me.Adapter.UpdateCommand.Parameters(2).Value = System.DBNull.Value
            End If
            If (QuantityPerUnit Is Nothing) Then
                Me.Adapter.UpdateCommand.Parameters(3).Value = System.DBNull.Value
            Else
                Me.Adapter.UpdateCommand.Parameters(3).Value = CType(QuantityPerUnit,String)
            End If
            If (UnitPrice.HasValue = true) Then
                Me.Adapter.UpdateCommand.Parameters(4).Value = CType(UnitPrice.Value,Decimal)
            Else
                Me.Adapter.UpdateCommand.Parameters(4).Value = System.DBNull.Value
            End If
            If (UnitsInStock.HasValue = true) Then
                Me.Adapter.UpdateCommand.Parameters(5).Value = CType(UnitsInStock.Value,Short)
            Else
                Me.Adapter.UpdateCommand.Parameters(5).Value = System.DBNull.Value
            End If
            If (UnitsOnOrder.HasValue = true) Then
                Me.Adapter.UpdateCommand.Parameters(6).Value = CType(UnitsOnOrder.Value,Short)
            Else
                Me.Adapter.UpdateCommand.Parameters(6).Value = System.DBNull.Value
            End If
            If (ReorderLevel.HasValue = true) Then
                Me.Adapter.UpdateCommand.Parameters(7).Value = CType(ReorderLevel.Value,Short)
            Else
                Me.Adapter.UpdateCommand.Parameters(7).Value = System.DBNull.Value
            End If
            Me.Adapter.UpdateCommand.Parameters(8).Value = CType(Discontinued,Boolean)
            Me.Adapter.UpdateCommand.Parameters(9).Value = CType(Original_ProductID,Integer)
            If (Original_ProductName Is Nothing) Then
                Throw New System.ArgumentNullException("Original_ProductName")
            Else
                Me.Adapter.UpdateCommand.Parameters(10).Value = CType(0,Object)
                Me.Adapter.UpdateCommand.Parameters(11).Value = CType(Original_ProductName,String)
            End If
            If (Original_SupplierID.HasValue = true) Then
                Me.Adapter.UpdateCommand.Parameters(12).Value = CType(0,Object)
                Me.Adapter.UpdateCommand.Parameters(13).Value = CType(Original_SupplierID.Value,Integer)
            Else
                Me.Adapter.UpdateCommand.Parameters(12).Value = CType(1,Object)
                Me.Adapter.UpdateCommand.Parameters(13).Value = System.DBNull.Value
            End If
            If (Original_CategoryID.HasValue = true) Then
                Me.Adapter.UpdateCommand.Parameters(14).Value = CType(0,Object)
                Me.Adapter.UpdateCommand.Parameters(15).Value = CType(Original_CategoryID.Value,Integer)
            Else
                Me.Adapter.UpdateCommand.Parameters(14).Value = CType(1,Object)
                Me.Adapter.UpdateCommand.Parameters(15).Value = System.DBNull.Value
            End If
            If (Original_QuantityPerUnit Is Nothing) Then
                Me.Adapter.UpdateCommand.Parameters(16).Value = CType(1,Object)
                Me.Adapter.UpdateCommand.Parameters(17).Value = System.DBNull.Value
            Else
                Me.Adapter.UpdateCommand.Parameters(16).Value = CType(0,Object)
                Me.Adapter.UpdateCommand.Parameters(17).Value = CType(Original_QuantityPerUnit,String)
            End If
            If (Original_UnitPrice.HasValue = true) Then
                Me.Adapter.UpdateCommand.Parameters(18).Value = CType(0,Object)
                Me.Adapter.UpdateCommand.Parameters(19).Value = CType(Original_UnitPrice.Value,Decimal)
            Else
                Me.Adapter.UpdateCommand.Parameters(18).Value = CType(1,Object)
                Me.Adapter.UpdateCommand.Parameters(19).Value = System.DBNull.Value
            End If
            If (Original_UnitsInStock.HasValue = true) Then
                Me.Adapter.UpdateCommand.Parameters(20).Value = CType(0,Object)
                Me.Adapter.UpdateCommand.Parameters(21).Value = CType(Original_UnitsInStock.Value,Short)
            Else
                Me.Adapter.UpdateCommand.Parameters(20).Value = CType(1,Object)
                Me.Adapter.UpdateCommand.Parameters(21).Value = System.DBNull.Value
            End If
            If (Original_UnitsOnOrder.HasValue = true) Then
                Me.Adapter.UpdateCommand.Parameters(22).Value = CType(0,Object)
                Me.Adapter.UpdateCommand.Parameters(23).Value = CType(Original_UnitsOnOrder.Value,Short)
            Else
                Me.Adapter.UpdateCommand.Parameters(22).Value = CType(1,Object)
                Me.Adapter.UpdateCommand.Parameters(23).Value = System.DBNull.Value
            End If
            If (Original_ReorderLevel.HasValue = true) Then
                Me.Adapter.UpdateCommand.Parameters(24).Value = CType(0,Object)
                Me.Adapter.UpdateCommand.Parameters(25).Value = CType(Original_ReorderLevel.Value,Short)
            Else
                Me.Adapter.UpdateCommand.Parameters(24).Value = CType(1,Object)
                Me.Adapter.UpdateCommand.Parameters(25).Value = System.DBNull.Value
            End If
            Me.Adapter.UpdateCommand.Parameters(26).Value = CType(0,Object)
            Me.Adapter.UpdateCommand.Parameters(27).Value = CType(Original_Discontinued,Boolean)
            Dim previousConnectionState As System.Data.ConnectionState = Me.Adapter.UpdateCommand.Connection.State
            If ((Me.Adapter.UpdateCommand.Connection.State And System.Data.ConnectionState.Open)  _
                        <> System.Data.ConnectionState.Open) Then
                Me.Adapter.UpdateCommand.Connection.Open
            End If
            Try 
                Dim returnValue As Integer = Me.Adapter.UpdateCommand.ExecuteNonQuery
                Return returnValue
            Finally
                If (previousConnectionState = System.Data.ConnectionState.Closed) Then
                    Me.Adapter.UpdateCommand.Connection.Close
                End If
            End Try
        End Function
    End Class
End Namespace
