#pragma once

#using <mscorlib.dll>
#using <System.dll>
#using <System.Data.dll>
#using <System.Xml.dll>
#using <System.Data.dll>

using namespace System::Security::Permissions;
[assembly:SecurityPermissionAttribute(SecurityAction::RequestMinimum, SkipVerification=false)];
// 
// This source code was auto-generated by xsd, Version=2.0.50727.42.
// 
namespace s3 {
    using namespace System;
    
    using namespace System;
    ref class BoreyDataSet;
    
    
    [System::CodeDom::Compiler::GeneratedCodeAttribute(L"System.Data.Design.TypedDataSetGenerator", L"2.0.0.0"), 
    Serializable, 
    System::ComponentModel::DesignerCategoryAttribute(L"code"), 
    System::ComponentModel::ToolboxItem(true), 
    System::Xml::Serialization::XmlSchemaProviderAttribute(L"GetTypedDataSetSchema"), 
    System::Xml::Serialization::XmlRootAttribute(L"BoreyDataSet"), 
    System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.DataSet")]
    public ref class BoreyDataSet : public System::Data::DataSet {
        public : ref class CustomerDataTable;
        public : ref class EmploeDataTable;
        public : ref class OrdersDataTable;
        public : ref class OrdersDetailsDataTable;
        public : ref class ProductDataTable;
        public : ref class CustomerRow;
        public : ref class EmploeRow;
        public : ref class OrdersRow;
        public : ref class OrdersDetailsRow;
        public : ref class ProductRow;
        public : ref class CustomerRowChangeEvent;
        public : ref class EmploeRowChangeEvent;
        public : ref class OrdersRowChangeEvent;
        public : ref class OrdersDetailsRowChangeEvent;
        public : ref class ProductRowChangeEvent;
        
        private: s3::BoreyDataSet::CustomerDataTable^  tableCustomer;
        
        private: s3::BoreyDataSet::EmploeDataTable^  tableEmploe;
        
        private: s3::BoreyDataSet::OrdersDataTable^  tableOrders;
        
        private: s3::BoreyDataSet::OrdersDetailsDataTable^  tableOrdersDetails;
        
        private: s3::BoreyDataSet::ProductDataTable^  tableProduct;
        
        private: System::Data::DataRelation^  relationCustomerOrders;
        
        private: System::Data::DataRelation^  relationEmploeOrders;
        
        private: System::Data::DataRelation^  relationOrdersOrdersDetails;
        
        private: System::Data::DataRelation^  relationProductOrdersDetails;
        
        private: System::Data::SchemaSerializationMode _schemaSerializationMode;
        
        public : delegate System::Void CustomerRowChangeEventHandler(System::Object^  sender, s3::BoreyDataSet::CustomerRowChangeEvent^  e);
        
        public : delegate System::Void EmploeRowChangeEventHandler(System::Object^  sender, s3::BoreyDataSet::EmploeRowChangeEvent^  e);
        
        public : delegate System::Void OrdersRowChangeEventHandler(System::Object^  sender, s3::BoreyDataSet::OrdersRowChangeEvent^  e);
        
        public : delegate System::Void OrdersDetailsRowChangeEventHandler(System::Object^  sender, s3::BoreyDataSet::OrdersDetailsRowChangeEvent^  e);
        
        public : delegate System::Void ProductRowChangeEventHandler(System::Object^  sender, s3::BoreyDataSet::ProductRowChangeEvent^  e);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        BoreyDataSet();
        protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        BoreyDataSet(System::Runtime::Serialization::SerializationInfo^  info, System::Runtime::Serialization::StreamingContext context);
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute, 
        System::ComponentModel::Browsable(false), 
        System::ComponentModel::DesignerSerializationVisibility(System::ComponentModel::DesignerSerializationVisibility::Content)]
         property s3::BoreyDataSet::CustomerDataTable^  Customer {
            s3::BoreyDataSet::CustomerDataTable^  get();
        }
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute, 
        System::ComponentModel::Browsable(false), 
        System::ComponentModel::DesignerSerializationVisibility(System::ComponentModel::DesignerSerializationVisibility::Content)]
         property s3::BoreyDataSet::EmploeDataTable^  Emploe {
            s3::BoreyDataSet::EmploeDataTable^  get();
        }
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute, 
        System::ComponentModel::Browsable(false), 
        System::ComponentModel::DesignerSerializationVisibility(System::ComponentModel::DesignerSerializationVisibility::Content)]
         property s3::BoreyDataSet::OrdersDataTable^  Orders {
            s3::BoreyDataSet::OrdersDataTable^  get();
        }
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute, 
        System::ComponentModel::Browsable(false), 
        System::ComponentModel::DesignerSerializationVisibility(System::ComponentModel::DesignerSerializationVisibility::Content)]
         property s3::BoreyDataSet::OrdersDetailsDataTable^  OrdersDetails {
            s3::BoreyDataSet::OrdersDetailsDataTable^  get();
        }
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute, 
        System::ComponentModel::Browsable(false), 
        System::ComponentModel::DesignerSerializationVisibility(System::ComponentModel::DesignerSerializationVisibility::Content)]
         property s3::BoreyDataSet::ProductDataTable^  Product {
            s3::BoreyDataSet::ProductDataTable^  get();
        }
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute, 
        System::ComponentModel::BrowsableAttribute(true), 
        System::ComponentModel::DesignerSerializationVisibilityAttribute(System::ComponentModel::DesignerSerializationVisibility::Visible)]
        virtual  property System::Data::SchemaSerializationMode SchemaSerializationMode {
            System::Data::SchemaSerializationMode get() override;
            System::Void set(System::Data::SchemaSerializationMode value) override;
        }
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute, 
        System::ComponentModel::DesignerSerializationVisibilityAttribute(System::ComponentModel::DesignerSerializationVisibility::Hidden)]
         property System::Data::DataTableCollection^  Tables {
            System::Data::DataTableCollection^  get() new;
        }
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute, 
        System::ComponentModel::DesignerSerializationVisibilityAttribute(System::ComponentModel::DesignerSerializationVisibility::Hidden)]
         property System::Data::DataRelationCollection^  Relations {
            System::Data::DataRelationCollection^  get() new;
        }
        
        protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        virtual System::Void InitializeDerivedDataSet() override;
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        virtual System::Data::DataSet^  Clone() override;
        
        protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        virtual System::Boolean ShouldSerializeTables() override;
        
        protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        virtual System::Boolean ShouldSerializeRelations() override;
        
        protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        virtual System::Void ReadXmlSerializable(System::Xml::XmlReader^  reader) override;
        
        protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        virtual System::Xml::Schema::XmlSchema^  GetSchemaSerializable() override;
        
        internal: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Void InitVars();
        
        internal: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Void InitVars(System::Boolean initTable);
        
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Void InitClass();
        
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Boolean ShouldSerializeCustomer();
        
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Boolean ShouldSerializeEmploe();
        
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Boolean ShouldSerializeOrders();
        
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Boolean ShouldSerializeOrdersDetails();
        
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Boolean ShouldSerializeProduct();
        
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Void SchemaChanged(System::Object^  sender, System::ComponentModel::CollectionChangeEventArgs^  e);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        static System::Xml::Schema::XmlSchemaComplexType^  GetTypedDataSetSchema(System::Xml::Schema::XmlSchemaSet^  xs);
        
        public : [System::CodeDom::Compiler::GeneratedCodeAttribute(L"System.Data.Design.TypedDataSetGenerator", L"2.0.0.0"), 
        System::Serializable, 
        System::Xml::Serialization::XmlSchemaProviderAttribute(L"GetTypedTableSchema")]
        ref class CustomerDataTable : public System::Data::DataTable, public System::Collections::IEnumerable {
            
            private: System::Data::DataColumn^  columnCustomerId;
            
            private: System::Data::DataColumn^  columnCustomerName;
            
            public: event s3::BoreyDataSet::CustomerRowChangeEventHandler^  CustomerRowChanging;
            
            public: event s3::BoreyDataSet::CustomerRowChangeEventHandler^  CustomerRowChanged;
            
            public: event s3::BoreyDataSet::CustomerRowChangeEventHandler^  CustomerRowDeleting;
            
            public: event s3::BoreyDataSet::CustomerRowChangeEventHandler^  CustomerRowDeleted;
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            CustomerDataTable();
            internal: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            CustomerDataTable(System::Data::DataTable^  table);
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            CustomerDataTable(System::Runtime::Serialization::SerializationInfo^  info, System::Runtime::Serialization::StreamingContext context);
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Data::DataColumn^  CustomerIdColumn {
                System::Data::DataColumn^  get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Data::DataColumn^  CustomerNameColumn {
                System::Data::DataColumn^  get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute, 
            System::ComponentModel::Browsable(false)]
             property System::Int32 Count {
                System::Int32 get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property s3::BoreyDataSet::CustomerRow^  default [System::Int32 ] {
                s3::BoreyDataSet::CustomerRow^  get(System::Int32 index);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void AddCustomerRow(s3::BoreyDataSet::CustomerRow^  row);
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            s3::BoreyDataSet::CustomerRow^  AddCustomerRow(System::String^  CustomerName);
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            s3::BoreyDataSet::CustomerRow^  FindByCustomerId(System::Int32 CustomerId);
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Collections::IEnumerator^  GetEnumerator();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Data::DataTable^  Clone() override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Data::DataTable^  CreateInstance() override;
            
            internal: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void InitVars();
            
            private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void InitClass();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            s3::BoreyDataSet::CustomerRow^  NewCustomerRow();
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Data::DataRow^  NewRowFromBuilder(System::Data::DataRowBuilder^  builder) override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Type^  GetRowType() override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Void OnRowChanged(System::Data::DataRowChangeEventArgs^  e) override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Void OnRowChanging(System::Data::DataRowChangeEventArgs^  e) override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Void OnRowDeleted(System::Data::DataRowChangeEventArgs^  e) override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Void OnRowDeleting(System::Data::DataRowChangeEventArgs^  e) override;
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void RemoveCustomerRow(s3::BoreyDataSet::CustomerRow^  row);
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            static System::Xml::Schema::XmlSchemaComplexType^  GetTypedTableSchema(System::Xml::Schema::XmlSchemaSet^  xs);
        };
        
        public : [System::CodeDom::Compiler::GeneratedCodeAttribute(L"System.Data.Design.TypedDataSetGenerator", L"2.0.0.0"), 
        System::Serializable, 
        System::Xml::Serialization::XmlSchemaProviderAttribute(L"GetTypedTableSchema")]
        ref class EmploeDataTable : public System::Data::DataTable, public System::Collections::IEnumerable {
            
            private: System::Data::DataColumn^  columnEmploeId;
            
            private: System::Data::DataColumn^  columnEmploe;
            
            public: event s3::BoreyDataSet::EmploeRowChangeEventHandler^  EmploeRowChanging;
            
            public: event s3::BoreyDataSet::EmploeRowChangeEventHandler^  EmploeRowChanged;
            
            public: event s3::BoreyDataSet::EmploeRowChangeEventHandler^  EmploeRowDeleting;
            
            public: event s3::BoreyDataSet::EmploeRowChangeEventHandler^  EmploeRowDeleted;
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            EmploeDataTable();
            internal: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            EmploeDataTable(System::Data::DataTable^  table);
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            EmploeDataTable(System::Runtime::Serialization::SerializationInfo^  info, System::Runtime::Serialization::StreamingContext context);
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Data::DataColumn^  EmploeIdColumn {
                System::Data::DataColumn^  get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Data::DataColumn^  EmploeColumn {
                System::Data::DataColumn^  get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute, 
            System::ComponentModel::Browsable(false)]
             property System::Int32 Count {
                System::Int32 get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property s3::BoreyDataSet::EmploeRow^  default [System::Int32 ] {
                s3::BoreyDataSet::EmploeRow^  get(System::Int32 index);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void AddEmploeRow(s3::BoreyDataSet::EmploeRow^  row);
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            s3::BoreyDataSet::EmploeRow^  AddEmploeRow(System::String^  Emploe);
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            s3::BoreyDataSet::EmploeRow^  FindByEmploeId(System::Int32 EmploeId);
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Collections::IEnumerator^  GetEnumerator();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Data::DataTable^  Clone() override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Data::DataTable^  CreateInstance() override;
            
            internal: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void InitVars();
            
            private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void InitClass();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            s3::BoreyDataSet::EmploeRow^  NewEmploeRow();
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Data::DataRow^  NewRowFromBuilder(System::Data::DataRowBuilder^  builder) override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Type^  GetRowType() override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Void OnRowChanged(System::Data::DataRowChangeEventArgs^  e) override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Void OnRowChanging(System::Data::DataRowChangeEventArgs^  e) override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Void OnRowDeleted(System::Data::DataRowChangeEventArgs^  e) override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Void OnRowDeleting(System::Data::DataRowChangeEventArgs^  e) override;
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void RemoveEmploeRow(s3::BoreyDataSet::EmploeRow^  row);
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            static System::Xml::Schema::XmlSchemaComplexType^  GetTypedTableSchema(System::Xml::Schema::XmlSchemaSet^  xs);
        };
        
        public : [System::CodeDom::Compiler::GeneratedCodeAttribute(L"System.Data.Design.TypedDataSetGenerator", L"2.0.0.0"), 
        System::Serializable, 
        System::Xml::Serialization::XmlSchemaProviderAttribute(L"GetTypedTableSchema")]
        ref class OrdersDataTable : public System::Data::DataTable, public System::Collections::IEnumerable {
            
            private: System::Data::DataColumn^  columnOrdersId;
            
            private: System::Data::DataColumn^  columnCustomerId;
            
            private: System::Data::DataColumn^  columnEmploeId;
            
            private: System::Data::DataColumn^  columnDate;
            
            public: event s3::BoreyDataSet::OrdersRowChangeEventHandler^  OrdersRowChanging;
            
            public: event s3::BoreyDataSet::OrdersRowChangeEventHandler^  OrdersRowChanged;
            
            public: event s3::BoreyDataSet::OrdersRowChangeEventHandler^  OrdersRowDeleting;
            
            public: event s3::BoreyDataSet::OrdersRowChangeEventHandler^  OrdersRowDeleted;
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            OrdersDataTable();
            internal: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            OrdersDataTable(System::Data::DataTable^  table);
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            OrdersDataTable(System::Runtime::Serialization::SerializationInfo^  info, System::Runtime::Serialization::StreamingContext context);
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Data::DataColumn^  OrdersIdColumn {
                System::Data::DataColumn^  get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Data::DataColumn^  CustomerIdColumn {
                System::Data::DataColumn^  get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Data::DataColumn^  EmploeIdColumn {
                System::Data::DataColumn^  get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Data::DataColumn^  DateColumn {
                System::Data::DataColumn^  get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute, 
            System::ComponentModel::Browsable(false)]
             property System::Int32 Count {
                System::Int32 get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property s3::BoreyDataSet::OrdersRow^  default [System::Int32 ] {
                s3::BoreyDataSet::OrdersRow^  get(System::Int32 index);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void AddOrdersRow(s3::BoreyDataSet::OrdersRow^  row);
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            s3::BoreyDataSet::OrdersRow^  AddOrdersRow(s3::BoreyDataSet::CustomerRow^  parentCustomerRowByCustomerOrders, 
                        s3::BoreyDataSet::EmploeRow^  parentEmploeRowByEmploeOrders, System::DateTime Date);
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            s3::BoreyDataSet::OrdersRow^  FindByOrdersId(System::Int32 OrdersId);
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Collections::IEnumerator^  GetEnumerator();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Data::DataTable^  Clone() override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Data::DataTable^  CreateInstance() override;
            
            internal: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void InitVars();
            
            private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void InitClass();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            s3::BoreyDataSet::OrdersRow^  NewOrdersRow();
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Data::DataRow^  NewRowFromBuilder(System::Data::DataRowBuilder^  builder) override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Type^  GetRowType() override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Void OnRowChanged(System::Data::DataRowChangeEventArgs^  e) override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Void OnRowChanging(System::Data::DataRowChangeEventArgs^  e) override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Void OnRowDeleted(System::Data::DataRowChangeEventArgs^  e) override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Void OnRowDeleting(System::Data::DataRowChangeEventArgs^  e) override;
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void RemoveOrdersRow(s3::BoreyDataSet::OrdersRow^  row);
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            static System::Xml::Schema::XmlSchemaComplexType^  GetTypedTableSchema(System::Xml::Schema::XmlSchemaSet^  xs);
        };
        
        public : [System::CodeDom::Compiler::GeneratedCodeAttribute(L"System.Data.Design.TypedDataSetGenerator", L"2.0.0.0"), 
        System::Serializable, 
        System::Xml::Serialization::XmlSchemaProviderAttribute(L"GetTypedTableSchema")]
        ref class OrdersDetailsDataTable : public System::Data::DataTable, public System::Collections::IEnumerable {
            
            private: System::Data::DataColumn^  columnOrdersDetailsId;
            
            private: System::Data::DataColumn^  columnProductId;
            
            private: System::Data::DataColumn^  columnPrice;
            
            private: System::Data::DataColumn^  columnVolume;
            
            private: System::Data::DataColumn^  columnOrdersId;
            
            public: event s3::BoreyDataSet::OrdersDetailsRowChangeEventHandler^  OrdersDetailsRowChanging;
            
            public: event s3::BoreyDataSet::OrdersDetailsRowChangeEventHandler^  OrdersDetailsRowChanged;
            
            public: event s3::BoreyDataSet::OrdersDetailsRowChangeEventHandler^  OrdersDetailsRowDeleting;
            
            public: event s3::BoreyDataSet::OrdersDetailsRowChangeEventHandler^  OrdersDetailsRowDeleted;
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            OrdersDetailsDataTable();
            internal: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            OrdersDetailsDataTable(System::Data::DataTable^  table);
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            OrdersDetailsDataTable(System::Runtime::Serialization::SerializationInfo^  info, System::Runtime::Serialization::StreamingContext context);
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Data::DataColumn^  OrdersDetailsIdColumn {
                System::Data::DataColumn^  get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Data::DataColumn^  ProductIdColumn {
                System::Data::DataColumn^  get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Data::DataColumn^  PriceColumn {
                System::Data::DataColumn^  get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Data::DataColumn^  VolumeColumn {
                System::Data::DataColumn^  get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Data::DataColumn^  OrdersIdColumn {
                System::Data::DataColumn^  get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute, 
            System::ComponentModel::Browsable(false)]
             property System::Int32 Count {
                System::Int32 get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property s3::BoreyDataSet::OrdersDetailsRow^  default [System::Int32 ] {
                s3::BoreyDataSet::OrdersDetailsRow^  get(System::Int32 index);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void AddOrdersDetailsRow(s3::BoreyDataSet::OrdersDetailsRow^  row);
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            s3::BoreyDataSet::OrdersDetailsRow^  AddOrdersDetailsRow(s3::BoreyDataSet::ProductRow^  parentProductRowByProductOrdersDetails, 
                        System::Decimal Price, System::Int32 Volume, s3::BoreyDataSet::OrdersRow^  parentOrdersRowByOrdersOrdersDetails);
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            s3::BoreyDataSet::OrdersDetailsRow^  FindByOrdersDetailsId(System::Int32 OrdersDetailsId);
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Collections::IEnumerator^  GetEnumerator();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Data::DataTable^  Clone() override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Data::DataTable^  CreateInstance() override;
            
            internal: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void InitVars();
            
            private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void InitClass();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            s3::BoreyDataSet::OrdersDetailsRow^  NewOrdersDetailsRow();
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Data::DataRow^  NewRowFromBuilder(System::Data::DataRowBuilder^  builder) override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Type^  GetRowType() override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Void OnRowChanged(System::Data::DataRowChangeEventArgs^  e) override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Void OnRowChanging(System::Data::DataRowChangeEventArgs^  e) override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Void OnRowDeleted(System::Data::DataRowChangeEventArgs^  e) override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Void OnRowDeleting(System::Data::DataRowChangeEventArgs^  e) override;
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void RemoveOrdersDetailsRow(s3::BoreyDataSet::OrdersDetailsRow^  row);
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            static System::Xml::Schema::XmlSchemaComplexType^  GetTypedTableSchema(System::Xml::Schema::XmlSchemaSet^  xs);
        };
        
        public : [System::CodeDom::Compiler::GeneratedCodeAttribute(L"System.Data.Design.TypedDataSetGenerator", L"2.0.0.0"), 
        System::Serializable, 
        System::Xml::Serialization::XmlSchemaProviderAttribute(L"GetTypedTableSchema")]
        ref class ProductDataTable : public System::Data::DataTable, public System::Collections::IEnumerable {
            
            private: System::Data::DataColumn^  columnProductId;
            
            private: System::Data::DataColumn^  columnProductName;
            
            public: event s3::BoreyDataSet::ProductRowChangeEventHandler^  ProductRowChanging;
            
            public: event s3::BoreyDataSet::ProductRowChangeEventHandler^  ProductRowChanged;
            
            public: event s3::BoreyDataSet::ProductRowChangeEventHandler^  ProductRowDeleting;
            
            public: event s3::BoreyDataSet::ProductRowChangeEventHandler^  ProductRowDeleted;
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            ProductDataTable();
            internal: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            ProductDataTable(System::Data::DataTable^  table);
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            ProductDataTable(System::Runtime::Serialization::SerializationInfo^  info, System::Runtime::Serialization::StreamingContext context);
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Data::DataColumn^  ProductIdColumn {
                System::Data::DataColumn^  get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Data::DataColumn^  ProductNameColumn {
                System::Data::DataColumn^  get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute, 
            System::ComponentModel::Browsable(false)]
             property System::Int32 Count {
                System::Int32 get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property s3::BoreyDataSet::ProductRow^  default [System::Int32 ] {
                s3::BoreyDataSet::ProductRow^  get(System::Int32 index);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void AddProductRow(s3::BoreyDataSet::ProductRow^  row);
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            s3::BoreyDataSet::ProductRow^  AddProductRow(System::String^  ProductName);
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            s3::BoreyDataSet::ProductRow^  FindByProductId(System::Int32 ProductId);
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Collections::IEnumerator^  GetEnumerator();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Data::DataTable^  Clone() override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Data::DataTable^  CreateInstance() override;
            
            internal: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void InitVars();
            
            private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void InitClass();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            s3::BoreyDataSet::ProductRow^  NewProductRow();
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Data::DataRow^  NewRowFromBuilder(System::Data::DataRowBuilder^  builder) override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Type^  GetRowType() override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Void OnRowChanged(System::Data::DataRowChangeEventArgs^  e) override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Void OnRowChanging(System::Data::DataRowChangeEventArgs^  e) override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Void OnRowDeleted(System::Data::DataRowChangeEventArgs^  e) override;
            
            protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            virtual System::Void OnRowDeleting(System::Data::DataRowChangeEventArgs^  e) override;
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void RemoveProductRow(s3::BoreyDataSet::ProductRow^  row);
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            static System::Xml::Schema::XmlSchemaComplexType^  GetTypedTableSchema(System::Xml::Schema::XmlSchemaSet^  xs);
        };
        
        public : [System::CodeDom::Compiler::GeneratedCodeAttribute(L"System.Data.Design.TypedDataSetGenerator", L"2.0.0.0")]
        ref class CustomerRow : public System::Data::DataRow {
            
            private: s3::BoreyDataSet::CustomerDataTable^  tableCustomer;
            
            internal: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            CustomerRow(System::Data::DataRowBuilder^  rb);
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Int32 CustomerId {
                System::Int32 get();
                System::Void set(System::Int32 value);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::String^  CustomerName {
                System::String^  get();
                System::Void set(System::String^  value);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Boolean IsCustomerNameNull();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void SetCustomerNameNull();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            cli::array< s3::BoreyDataSet::OrdersRow^  >^  GetOrdersRows();
        };
        
        public : [System::CodeDom::Compiler::GeneratedCodeAttribute(L"System.Data.Design.TypedDataSetGenerator", L"2.0.0.0")]
        ref class EmploeRow : public System::Data::DataRow {
            
            private: s3::BoreyDataSet::EmploeDataTable^  tableEmploe;
            
            internal: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            EmploeRow(System::Data::DataRowBuilder^  rb);
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Int32 EmploeId {
                System::Int32 get();
                System::Void set(System::Int32 value);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::String^  Emploe {
                System::String^  get();
                System::Void set(System::String^  value);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Boolean IsEmploeNull();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void SetEmploeNull();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            cli::array< s3::BoreyDataSet::OrdersRow^  >^  GetOrdersRows();
        };
        
        public : [System::CodeDom::Compiler::GeneratedCodeAttribute(L"System.Data.Design.TypedDataSetGenerator", L"2.0.0.0")]
        ref class OrdersRow : public System::Data::DataRow {
            
            private: s3::BoreyDataSet::OrdersDataTable^  tableOrders;
            
            internal: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            OrdersRow(System::Data::DataRowBuilder^  rb);
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Int32 OrdersId {
                System::Int32 get();
                System::Void set(System::Int32 value);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Int32 CustomerId {
                System::Int32 get();
                System::Void set(System::Int32 value);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Int32 EmploeId {
                System::Int32 get();
                System::Void set(System::Int32 value);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::DateTime Date {
                System::DateTime get();
                System::Void set(System::DateTime value);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property s3::BoreyDataSet::CustomerRow^  CustomerRow {
                s3::BoreyDataSet::CustomerRow^  get();
                System::Void set(s3::BoreyDataSet::CustomerRow^  value);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property s3::BoreyDataSet::EmploeRow^  EmploeRow {
                s3::BoreyDataSet::EmploeRow^  get();
                System::Void set(s3::BoreyDataSet::EmploeRow^  value);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Boolean IsCustomerIdNull();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void SetCustomerIdNull();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Boolean IsEmploeIdNull();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void SetEmploeIdNull();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Boolean IsDateNull();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void SetDateNull();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            cli::array< s3::BoreyDataSet::OrdersDetailsRow^  >^  GetOrdersDetailsRows();
        };
        
        public : [System::CodeDom::Compiler::GeneratedCodeAttribute(L"System.Data.Design.TypedDataSetGenerator", L"2.0.0.0")]
        ref class OrdersDetailsRow : public System::Data::DataRow {
            
            private: s3::BoreyDataSet::OrdersDetailsDataTable^  tableOrdersDetails;
            
            internal: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            OrdersDetailsRow(System::Data::DataRowBuilder^  rb);
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Int32 OrdersDetailsId {
                System::Int32 get();
                System::Void set(System::Int32 value);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Int32 ProductId {
                System::Int32 get();
                System::Void set(System::Int32 value);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Decimal Price {
                System::Decimal get();
                System::Void set(System::Decimal value);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Int32 Volume {
                System::Int32 get();
                System::Void set(System::Int32 value);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Int32 OrdersId {
                System::Int32 get();
                System::Void set(System::Int32 value);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property s3::BoreyDataSet::OrdersRow^  OrdersRow {
                s3::BoreyDataSet::OrdersRow^  get();
                System::Void set(s3::BoreyDataSet::OrdersRow^  value);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property s3::BoreyDataSet::ProductRow^  ProductRow {
                s3::BoreyDataSet::ProductRow^  get();
                System::Void set(s3::BoreyDataSet::ProductRow^  value);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Boolean IsProductIdNull();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void SetProductIdNull();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Boolean IsPriceNull();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void SetPriceNull();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Boolean IsVolumeNull();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void SetVolumeNull();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Boolean IsOrdersIdNull();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void SetOrdersIdNull();
        };
        
        public : [System::CodeDom::Compiler::GeneratedCodeAttribute(L"System.Data.Design.TypedDataSetGenerator", L"2.0.0.0")]
        ref class ProductRow : public System::Data::DataRow {
            
            private: s3::BoreyDataSet::ProductDataTable^  tableProduct;
            
            internal: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            ProductRow(System::Data::DataRowBuilder^  rb);
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Int32 ProductId {
                System::Int32 get();
                System::Void set(System::Int32 value);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::String^  ProductName {
                System::String^  get();
                System::Void set(System::String^  value);
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Boolean IsProductNameNull();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            System::Void SetProductNameNull();
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            cli::array< s3::BoreyDataSet::OrdersDetailsRow^  >^  GetOrdersDetailsRows();
        };
        
        public : [System::CodeDom::Compiler::GeneratedCodeAttribute(L"System.Data.Design.TypedDataSetGenerator", L"2.0.0.0")]
        ref class CustomerRowChangeEvent : public System::EventArgs {
            
            private: s3::BoreyDataSet::CustomerRow^  eventRow;
            
            private: System::Data::DataRowAction eventAction;
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            CustomerRowChangeEvent(s3::BoreyDataSet::CustomerRow^  row, System::Data::DataRowAction action);
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property s3::BoreyDataSet::CustomerRow^  Row {
                s3::BoreyDataSet::CustomerRow^  get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Data::DataRowAction Action {
                System::Data::DataRowAction get();
            }
        };
        
        public : [System::CodeDom::Compiler::GeneratedCodeAttribute(L"System.Data.Design.TypedDataSetGenerator", L"2.0.0.0")]
        ref class EmploeRowChangeEvent : public System::EventArgs {
            
            private: s3::BoreyDataSet::EmploeRow^  eventRow;
            
            private: System::Data::DataRowAction eventAction;
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            EmploeRowChangeEvent(s3::BoreyDataSet::EmploeRow^  row, System::Data::DataRowAction action);
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property s3::BoreyDataSet::EmploeRow^  Row {
                s3::BoreyDataSet::EmploeRow^  get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Data::DataRowAction Action {
                System::Data::DataRowAction get();
            }
        };
        
        public : [System::CodeDom::Compiler::GeneratedCodeAttribute(L"System.Data.Design.TypedDataSetGenerator", L"2.0.0.0")]
        ref class OrdersRowChangeEvent : public System::EventArgs {
            
            private: s3::BoreyDataSet::OrdersRow^  eventRow;
            
            private: System::Data::DataRowAction eventAction;
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            OrdersRowChangeEvent(s3::BoreyDataSet::OrdersRow^  row, System::Data::DataRowAction action);
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property s3::BoreyDataSet::OrdersRow^  Row {
                s3::BoreyDataSet::OrdersRow^  get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Data::DataRowAction Action {
                System::Data::DataRowAction get();
            }
        };
        
        public : [System::CodeDom::Compiler::GeneratedCodeAttribute(L"System.Data.Design.TypedDataSetGenerator", L"2.0.0.0")]
        ref class OrdersDetailsRowChangeEvent : public System::EventArgs {
            
            private: s3::BoreyDataSet::OrdersDetailsRow^  eventRow;
            
            private: System::Data::DataRowAction eventAction;
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            OrdersDetailsRowChangeEvent(s3::BoreyDataSet::OrdersDetailsRow^  row, System::Data::DataRowAction action);
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property s3::BoreyDataSet::OrdersDetailsRow^  Row {
                s3::BoreyDataSet::OrdersDetailsRow^  get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Data::DataRowAction Action {
                System::Data::DataRowAction get();
            }
        };
        
        public : [System::CodeDom::Compiler::GeneratedCodeAttribute(L"System.Data.Design.TypedDataSetGenerator", L"2.0.0.0")]
        ref class ProductRowChangeEvent : public System::EventArgs {
            
            private: s3::BoreyDataSet::ProductRow^  eventRow;
            
            private: System::Data::DataRowAction eventAction;
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
            ProductRowChangeEvent(s3::BoreyDataSet::ProductRow^  row, System::Data::DataRowAction action);
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property s3::BoreyDataSet::ProductRow^  Row {
                s3::BoreyDataSet::ProductRow^  get();
            }
            
            public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
             property System::Data::DataRowAction Action {
                System::Data::DataRowAction get();
            }
        };
    };
}
namespace s3 {
    
    
    inline BoreyDataSet::BoreyDataSet() {
        this->BeginInit();
        this->InitClass();
        System::ComponentModel::CollectionChangeEventHandler^  schemaChangedHandler = gcnew System::ComponentModel::CollectionChangeEventHandler(this, &s3::BoreyDataSet::SchemaChanged);
        __super::Tables->CollectionChanged += schemaChangedHandler;
        __super::Relations->CollectionChanged += schemaChangedHandler;
        this->EndInit();
    }
    
    inline BoreyDataSet::BoreyDataSet(System::Runtime::Serialization::SerializationInfo^  info, System::Runtime::Serialization::StreamingContext context) : 
            System::Data::DataSet(info, context, false) {
        if (this->IsBinarySerialized(info, context) == true) {
            this->InitVars(false);
            System::ComponentModel::CollectionChangeEventHandler^  schemaChangedHandler1 = gcnew System::ComponentModel::CollectionChangeEventHandler(this, &s3::BoreyDataSet::SchemaChanged);
            this->Tables->CollectionChanged += schemaChangedHandler1;
            this->Relations->CollectionChanged += schemaChangedHandler1;
            return;
        }
        System::String^  strSchema = (cli::safe_cast<System::String^  >(info->GetValue(L"XmlSchema", System::String::typeid)));
        if (this->DetermineSchemaSerializationMode(info, context) == System::Data::SchemaSerializationMode::IncludeSchema) {
            System::Data::DataSet^  ds = (gcnew System::Data::DataSet());
            ds->ReadXmlSchema((gcnew System::Xml::XmlTextReader((gcnew System::IO::StringReader(strSchema)))));
            if (ds->Tables[L"Customer"] != nullptr) {
                __super::Tables->Add((gcnew s3::BoreyDataSet::CustomerDataTable(ds->Tables[L"Customer"])));
            }
            if (ds->Tables[L"Emploe"] != nullptr) {
                __super::Tables->Add((gcnew s3::BoreyDataSet::EmploeDataTable(ds->Tables[L"Emploe"])));
            }
            if (ds->Tables[L"Orders"] != nullptr) {
                __super::Tables->Add((gcnew s3::BoreyDataSet::OrdersDataTable(ds->Tables[L"Orders"])));
            }
            if (ds->Tables[L"OrdersDetails"] != nullptr) {
                __super::Tables->Add((gcnew s3::BoreyDataSet::OrdersDetailsDataTable(ds->Tables[L"OrdersDetails"])));
            }
            if (ds->Tables[L"Product"] != nullptr) {
                __super::Tables->Add((gcnew s3::BoreyDataSet::ProductDataTable(ds->Tables[L"Product"])));
            }
            this->DataSetName = ds->DataSetName;
            this->Prefix = ds->Prefix;
            this->Namespace = ds->Namespace;
            this->Locale = ds->Locale;
            this->CaseSensitive = ds->CaseSensitive;
            this->EnforceConstraints = ds->EnforceConstraints;
            this->Merge(ds, false, System::Data::MissingSchemaAction::Add);
            this->InitVars();
        }
        else {
            this->ReadXmlSchema((gcnew System::Xml::XmlTextReader((gcnew System::IO::StringReader(strSchema)))));
        }
        this->GetSerializationData(info, context);
        System::ComponentModel::CollectionChangeEventHandler^  schemaChangedHandler = gcnew System::ComponentModel::CollectionChangeEventHandler(this, &s3::BoreyDataSet::SchemaChanged);
        __super::Tables->CollectionChanged += schemaChangedHandler;
        this->Relations->CollectionChanged += schemaChangedHandler;
    }
    
    inline s3::BoreyDataSet::CustomerDataTable^  BoreyDataSet::Customer::get() {
        return this->tableCustomer;
    }
    
    inline s3::BoreyDataSet::EmploeDataTable^  BoreyDataSet::Emploe::get() {
        return this->tableEmploe;
    }
    
    inline s3::BoreyDataSet::OrdersDataTable^  BoreyDataSet::Orders::get() {
        return this->tableOrders;
    }
    
    inline s3::BoreyDataSet::OrdersDetailsDataTable^  BoreyDataSet::OrdersDetails::get() {
        return this->tableOrdersDetails;
    }
    
    inline s3::BoreyDataSet::ProductDataTable^  BoreyDataSet::Product::get() {
        return this->tableProduct;
    }
    
    inline System::Data::SchemaSerializationMode BoreyDataSet::SchemaSerializationMode::get() {
        return this->_schemaSerializationMode;
    }
    inline System::Void BoreyDataSet::SchemaSerializationMode::set(System::Data::SchemaSerializationMode value) {
        this->_schemaSerializationMode = __identifier(value);
    }
    
    inline System::Data::DataTableCollection^  BoreyDataSet::Tables::get() {
        return __super::Tables;
    }
    
    inline System::Data::DataRelationCollection^  BoreyDataSet::Relations::get() {
        return __super::Relations;
    }
    
    inline System::Void BoreyDataSet::InitializeDerivedDataSet() {
        this->BeginInit();
        this->InitClass();
        this->EndInit();
    }
    
    inline System::Data::DataSet^  BoreyDataSet::Clone() {
        s3::BoreyDataSet^  cln = (cli::safe_cast<s3::BoreyDataSet^  >(__super::Clone()));
        cln->InitVars();
        cln->SchemaSerializationMode = this->SchemaSerializationMode;
        return cln;
    }
    
    inline System::Boolean BoreyDataSet::ShouldSerializeTables() {
        return false;
    }
    
    inline System::Boolean BoreyDataSet::ShouldSerializeRelations() {
        return false;
    }
    
    inline System::Void BoreyDataSet::ReadXmlSerializable(System::Xml::XmlReader^  reader) {
        if (this->DetermineSchemaSerializationMode(reader) == System::Data::SchemaSerializationMode::IncludeSchema) {
            this->Reset();
            System::Data::DataSet^  ds = (gcnew System::Data::DataSet());
            ds->ReadXml(reader);
            if (ds->Tables[L"Customer"] != nullptr) {
                __super::Tables->Add((gcnew s3::BoreyDataSet::CustomerDataTable(ds->Tables[L"Customer"])));
            }
            if (ds->Tables[L"Emploe"] != nullptr) {
                __super::Tables->Add((gcnew s3::BoreyDataSet::EmploeDataTable(ds->Tables[L"Emploe"])));
            }
            if (ds->Tables[L"Orders"] != nullptr) {
                __super::Tables->Add((gcnew s3::BoreyDataSet::OrdersDataTable(ds->Tables[L"Orders"])));
            }
            if (ds->Tables[L"OrdersDetails"] != nullptr) {
                __super::Tables->Add((gcnew s3::BoreyDataSet::OrdersDetailsDataTable(ds->Tables[L"OrdersDetails"])));
            }
            if (ds->Tables[L"Product"] != nullptr) {
                __super::Tables->Add((gcnew s3::BoreyDataSet::ProductDataTable(ds->Tables[L"Product"])));
            }
            this->DataSetName = ds->DataSetName;
            this->Prefix = ds->Prefix;
            this->Namespace = ds->Namespace;
            this->Locale = ds->Locale;
            this->CaseSensitive = ds->CaseSensitive;
            this->EnforceConstraints = ds->EnforceConstraints;
            this->Merge(ds, false, System::Data::MissingSchemaAction::Add);
            this->InitVars();
        }
        else {
            this->ReadXml(reader);
            this->InitVars();
        }
    }
    
    inline System::Xml::Schema::XmlSchema^  BoreyDataSet::GetSchemaSerializable() {
        System::IO::MemoryStream^  stream = (gcnew System::IO::MemoryStream());
        this->WriteXmlSchema((gcnew System::Xml::XmlTextWriter(stream, nullptr)));
        stream->Position = 0;
        return System::Xml::Schema::XmlSchema::Read((gcnew System::Xml::XmlTextReader(stream)), nullptr);
    }
    
    inline System::Void BoreyDataSet::InitVars() {
        this->InitVars(true);
    }
    
    inline System::Void BoreyDataSet::InitVars(System::Boolean initTable) {
        this->tableCustomer = (cli::safe_cast<s3::BoreyDataSet::CustomerDataTable^  >(__super::Tables[L"Customer"]));
        if (initTable == true) {
            if (this->tableCustomer != nullptr) {
                this->tableCustomer->InitVars();
            }
        }
        this->tableEmploe = (cli::safe_cast<s3::BoreyDataSet::EmploeDataTable^  >(__super::Tables[L"Emploe"]));
        if (initTable == true) {
            if (this->tableEmploe != nullptr) {
                this->tableEmploe->InitVars();
            }
        }
        this->tableOrders = (cli::safe_cast<s3::BoreyDataSet::OrdersDataTable^  >(__super::Tables[L"Orders"]));
        if (initTable == true) {
            if (this->tableOrders != nullptr) {
                this->tableOrders->InitVars();
            }
        }
        this->tableOrdersDetails = (cli::safe_cast<s3::BoreyDataSet::OrdersDetailsDataTable^  >(__super::Tables[L"OrdersDetails"]));
        if (initTable == true) {
            if (this->tableOrdersDetails != nullptr) {
                this->tableOrdersDetails->InitVars();
            }
        }
        this->tableProduct = (cli::safe_cast<s3::BoreyDataSet::ProductDataTable^  >(__super::Tables[L"Product"]));
        if (initTable == true) {
            if (this->tableProduct != nullptr) {
                this->tableProduct->InitVars();
            }
        }
        this->relationCustomerOrders = this->Relations[L"CustomerOrders"];
        this->relationEmploeOrders = this->Relations[L"EmploeOrders"];
        this->relationOrdersOrdersDetails = this->Relations[L"OrdersOrdersDetails"];
        this->relationProductOrdersDetails = this->Relations[L"ProductOrdersDetails"];
    }
    
    inline System::Void BoreyDataSet::InitClass() {
        this->DataSetName = L"BoreyDataSet";
        this->Prefix = L"";
        this->Namespace = L"http://tempuri.org/BoreyDataSet.xsd";
        this->EnforceConstraints = true;
        this->SchemaSerializationMode = System::Data::SchemaSerializationMode::IncludeSchema;
        this->tableCustomer = (gcnew s3::BoreyDataSet::CustomerDataTable());
        __super::Tables->Add(this->tableCustomer);
        this->tableEmploe = (gcnew s3::BoreyDataSet::EmploeDataTable());
        __super::Tables->Add(this->tableEmploe);
        this->tableOrders = (gcnew s3::BoreyDataSet::OrdersDataTable());
        __super::Tables->Add(this->tableOrders);
        this->tableOrdersDetails = (gcnew s3::BoreyDataSet::OrdersDetailsDataTable());
        __super::Tables->Add(this->tableOrdersDetails);
        this->tableProduct = (gcnew s3::BoreyDataSet::ProductDataTable());
        __super::Tables->Add(this->tableProduct);
        this->relationCustomerOrders = (gcnew System::Data::DataRelation(L"CustomerOrders", gcnew cli::array< System::Data::DataColumn^  >(1) {this->tableCustomer->CustomerIdColumn}, 
            gcnew cli::array< System::Data::DataColumn^  >(1) {this->tableOrders->CustomerIdColumn}, false));
        this->Relations->Add(this->relationCustomerOrders);
        this->relationEmploeOrders = (gcnew System::Data::DataRelation(L"EmploeOrders", gcnew cli::array< System::Data::DataColumn^  >(1) {this->tableEmploe->EmploeIdColumn}, 
            gcnew cli::array< System::Data::DataColumn^  >(1) {this->tableOrders->EmploeIdColumn}, false));
        this->Relations->Add(this->relationEmploeOrders);
        this->relationOrdersOrdersDetails = (gcnew System::Data::DataRelation(L"OrdersOrdersDetails", gcnew cli::array< System::Data::DataColumn^  >(1) {this->tableOrders->OrdersIdColumn}, 
            gcnew cli::array< System::Data::DataColumn^  >(1) {this->tableOrdersDetails->OrdersIdColumn}, false));
        this->Relations->Add(this->relationOrdersOrdersDetails);
        this->relationProductOrdersDetails = (gcnew System::Data::DataRelation(L"ProductOrdersDetails", gcnew cli::array< System::Data::DataColumn^  >(1) {this->tableProduct->ProductIdColumn}, 
            gcnew cli::array< System::Data::DataColumn^  >(1) {this->tableOrdersDetails->ProductIdColumn}, false));
        this->Relations->Add(this->relationProductOrdersDetails);
    }
    
    inline System::Boolean BoreyDataSet::ShouldSerializeCustomer() {
        return false;
    }
    
    inline System::Boolean BoreyDataSet::ShouldSerializeEmploe() {
        return false;
    }
    
    inline System::Boolean BoreyDataSet::ShouldSerializeOrders() {
        return false;
    }
    
    inline System::Boolean BoreyDataSet::ShouldSerializeOrdersDetails() {
        return false;
    }
    
    inline System::Boolean BoreyDataSet::ShouldSerializeProduct() {
        return false;
    }
    
    inline System::Void BoreyDataSet::SchemaChanged(System::Object^  sender, System::ComponentModel::CollectionChangeEventArgs^  e) {
        if (e->Action == System::ComponentModel::CollectionChangeAction::Remove) {
            this->InitVars();
        }
    }
    
    inline System::Xml::Schema::XmlSchemaComplexType^  BoreyDataSet::GetTypedDataSetSchema(System::Xml::Schema::XmlSchemaSet^  xs) {
        s3::BoreyDataSet^  ds = (gcnew s3::BoreyDataSet());
        System::Xml::Schema::XmlSchemaComplexType^  type = (gcnew System::Xml::Schema::XmlSchemaComplexType());
        System::Xml::Schema::XmlSchemaSequence^  sequence = (gcnew System::Xml::Schema::XmlSchemaSequence());
        xs->Add(ds->GetSchemaSerializable());
        System::Xml::Schema::XmlSchemaAny^  any = (gcnew System::Xml::Schema::XmlSchemaAny());
        any->Namespace = ds->Namespace;
        sequence->Items->Add(any);
        type->Particle = sequence;
        return type;
    }
    
    
    inline BoreyDataSet::CustomerDataTable::CustomerDataTable() {
        this->TableName = L"Customer";
        this->BeginInit();
        this->InitClass();
        this->EndInit();
    }
    
    inline BoreyDataSet::CustomerDataTable::CustomerDataTable(System::Data::DataTable^  table) {
        this->TableName = table->TableName;
        if (table->CaseSensitive != table->DataSet->CaseSensitive) {
            this->CaseSensitive = table->CaseSensitive;
        }
        if (table->Locale->ToString() != table->DataSet->Locale->ToString()) {
            this->Locale = table->Locale;
        }
        if (table->Namespace != table->DataSet->Namespace) {
            this->Namespace = table->Namespace;
        }
        this->Prefix = table->Prefix;
        this->MinimumCapacity = table->MinimumCapacity;
    }
    
    inline BoreyDataSet::CustomerDataTable::CustomerDataTable(System::Runtime::Serialization::SerializationInfo^  info, System::Runtime::Serialization::StreamingContext context) : 
            System::Data::DataTable(info, context) {
        this->InitVars();
    }
    
    inline System::Data::DataColumn^  BoreyDataSet::CustomerDataTable::CustomerIdColumn::get() {
        return this->columnCustomerId;
    }
    
    inline System::Data::DataColumn^  BoreyDataSet::CustomerDataTable::CustomerNameColumn::get() {
        return this->columnCustomerName;
    }
    
    inline System::Int32 BoreyDataSet::CustomerDataTable::Count::get() {
        return this->Rows->Count;
    }
    
    inline s3::BoreyDataSet::CustomerRow^  BoreyDataSet::CustomerDataTable::default::get(System::Int32 index) {
        return (cli::safe_cast<s3::BoreyDataSet::CustomerRow^  >(this->Rows[index]));
    }
    
    inline System::Void BoreyDataSet::CustomerDataTable::AddCustomerRow(s3::BoreyDataSet::CustomerRow^  row) {
        this->Rows->Add(row);
    }
    
    inline s3::BoreyDataSet::CustomerRow^  BoreyDataSet::CustomerDataTable::AddCustomerRow(System::String^  CustomerName) {
        s3::BoreyDataSet::CustomerRow^  rowCustomerRow = (cli::safe_cast<s3::BoreyDataSet::CustomerRow^  >(this->NewRow()));
        rowCustomerRow->ItemArray = gcnew cli::array< System::Object^  >(2) {nullptr, CustomerName};
        this->Rows->Add(rowCustomerRow);
        return rowCustomerRow;
    }
    
    inline s3::BoreyDataSet::CustomerRow^  BoreyDataSet::CustomerDataTable::FindByCustomerId(System::Int32 CustomerId) {
        return (cli::safe_cast<s3::BoreyDataSet::CustomerRow^  >(this->Rows->Find(gcnew cli::array< System::Object^  >(1) {CustomerId})));
    }
    
    inline System::Collections::IEnumerator^  BoreyDataSet::CustomerDataTable::GetEnumerator() {
        return this->Rows->GetEnumerator();
    }
    
    inline System::Data::DataTable^  BoreyDataSet::CustomerDataTable::Clone() {
        s3::BoreyDataSet::CustomerDataTable^  cln = (cli::safe_cast<s3::BoreyDataSet::CustomerDataTable^  >(__super::Clone()));
        cln->InitVars();
        return cln;
    }
    
    inline System::Data::DataTable^  BoreyDataSet::CustomerDataTable::CreateInstance() {
        return (gcnew s3::BoreyDataSet::CustomerDataTable());
    }
    
    inline System::Void BoreyDataSet::CustomerDataTable::InitVars() {
        this->columnCustomerId = __super::Columns[L"CustomerId"];
        this->columnCustomerName = __super::Columns[L"CustomerName"];
    }
    
    inline System::Void BoreyDataSet::CustomerDataTable::InitClass() {
        this->columnCustomerId = (gcnew System::Data::DataColumn(L"CustomerId", System::Int32::typeid, nullptr, System::Data::MappingType::Element));
        __super::Columns->Add(this->columnCustomerId);
        this->columnCustomerName = (gcnew System::Data::DataColumn(L"CustomerName", System::String::typeid, nullptr, System::Data::MappingType::Element));
        __super::Columns->Add(this->columnCustomerName);
        this->Constraints->Add((gcnew System::Data::UniqueConstraint(L"Constraint1", gcnew cli::array< System::Data::DataColumn^  >(1) {this->columnCustomerId}, 
                true)));
        this->columnCustomerId->AutoIncrement = true;
        this->columnCustomerId->AllowDBNull = false;
        this->columnCustomerId->Unique = true;
        this->columnCustomerName->MaxLength = 50;
    }
    
    inline s3::BoreyDataSet::CustomerRow^  BoreyDataSet::CustomerDataTable::NewCustomerRow() {
        return (cli::safe_cast<s3::BoreyDataSet::CustomerRow^  >(this->NewRow()));
    }
    
    inline System::Data::DataRow^  BoreyDataSet::CustomerDataTable::NewRowFromBuilder(System::Data::DataRowBuilder^  builder) {
        return (gcnew s3::BoreyDataSet::CustomerRow(builder));
    }
    
    inline System::Type^  BoreyDataSet::CustomerDataTable::GetRowType() {
        return s3::BoreyDataSet::CustomerRow::typeid;
    }
    
    inline System::Void BoreyDataSet::CustomerDataTable::OnRowChanged(System::Data::DataRowChangeEventArgs^  e) {
        __super::OnRowChanged(e);
        {
            this->CustomerRowChanged(this, (gcnew s3::BoreyDataSet::CustomerRowChangeEvent((cli::safe_cast<s3::BoreyDataSet::CustomerRow^  >(e->Row)), 
                    e->Action)));
        }
    }
    
    inline System::Void BoreyDataSet::CustomerDataTable::OnRowChanging(System::Data::DataRowChangeEventArgs^  e) {
        __super::OnRowChanging(e);
        {
            this->CustomerRowChanging(this, (gcnew s3::BoreyDataSet::CustomerRowChangeEvent((cli::safe_cast<s3::BoreyDataSet::CustomerRow^  >(e->Row)), 
                    e->Action)));
        }
    }
    
    inline System::Void BoreyDataSet::CustomerDataTable::OnRowDeleted(System::Data::DataRowChangeEventArgs^  e) {
        __super::OnRowDeleted(e);
        {
            this->CustomerRowDeleted(this, (gcnew s3::BoreyDataSet::CustomerRowChangeEvent((cli::safe_cast<s3::BoreyDataSet::CustomerRow^  >(e->Row)), 
                    e->Action)));
        }
    }
    
    inline System::Void BoreyDataSet::CustomerDataTable::OnRowDeleting(System::Data::DataRowChangeEventArgs^  e) {
        __super::OnRowDeleting(e);
        {
            this->CustomerRowDeleting(this, (gcnew s3::BoreyDataSet::CustomerRowChangeEvent((cli::safe_cast<s3::BoreyDataSet::CustomerRow^  >(e->Row)), 
                    e->Action)));
        }
    }
    
    inline System::Void BoreyDataSet::CustomerDataTable::RemoveCustomerRow(s3::BoreyDataSet::CustomerRow^  row) {
        this->Rows->Remove(row);
    }
    
    inline System::Xml::Schema::XmlSchemaComplexType^  BoreyDataSet::CustomerDataTable::GetTypedTableSchema(System::Xml::Schema::XmlSchemaSet^  xs) {
        System::Xml::Schema::XmlSchemaComplexType^  type = (gcnew System::Xml::Schema::XmlSchemaComplexType());
        System::Xml::Schema::XmlSchemaSequence^  sequence = (gcnew System::Xml::Schema::XmlSchemaSequence());
        s3::BoreyDataSet^  ds = (gcnew s3::BoreyDataSet());
        xs->Add(ds->GetSchemaSerializable());
        System::Xml::Schema::XmlSchemaAny^  any1 = (gcnew System::Xml::Schema::XmlSchemaAny());
        any1->Namespace = L"http://www.w3.org/2001/XMLSchema";
        any1->MinOccurs = System::Decimal(0);
        any1->MaxOccurs = System::Decimal::MaxValue;
        any1->ProcessContents = System::Xml::Schema::XmlSchemaContentProcessing::Lax;
        sequence->Items->Add(any1);
        System::Xml::Schema::XmlSchemaAny^  any2 = (gcnew System::Xml::Schema::XmlSchemaAny());
        any2->Namespace = L"urn:schemas-microsoft-com:xml-diffgram-v1";
        any2->MinOccurs = System::Decimal(1);
        any2->ProcessContents = System::Xml::Schema::XmlSchemaContentProcessing::Lax;
        sequence->Items->Add(any2);
        System::Xml::Schema::XmlSchemaAttribute^  attribute1 = (gcnew System::Xml::Schema::XmlSchemaAttribute());
        attribute1->Name = L"namespace";
        attribute1->FixedValue = ds->Namespace;
        type->Attributes->Add(attribute1);
        System::Xml::Schema::XmlSchemaAttribute^  attribute2 = (gcnew System::Xml::Schema::XmlSchemaAttribute());
        attribute2->Name = L"tableTypeName";
        attribute2->FixedValue = L"CustomerDataTable";
        type->Attributes->Add(attribute2);
        type->Particle = sequence;
        return type;
    }
    
    
    inline BoreyDataSet::EmploeDataTable::EmploeDataTable() {
        this->TableName = L"Emploe";
        this->BeginInit();
        this->InitClass();
        this->EndInit();
    }
    
    inline BoreyDataSet::EmploeDataTable::EmploeDataTable(System::Data::DataTable^  table) {
        this->TableName = table->TableName;
        if (table->CaseSensitive != table->DataSet->CaseSensitive) {
            this->CaseSensitive = table->CaseSensitive;
        }
        if (table->Locale->ToString() != table->DataSet->Locale->ToString()) {
            this->Locale = table->Locale;
        }
        if (table->Namespace != table->DataSet->Namespace) {
            this->Namespace = table->Namespace;
        }
        this->Prefix = table->Prefix;
        this->MinimumCapacity = table->MinimumCapacity;
    }
    
    inline BoreyDataSet::EmploeDataTable::EmploeDataTable(System::Runtime::Serialization::SerializationInfo^  info, System::Runtime::Serialization::StreamingContext context) : 
            System::Data::DataTable(info, context) {
        this->InitVars();
    }
    
    inline System::Data::DataColumn^  BoreyDataSet::EmploeDataTable::EmploeIdColumn::get() {
        return this->columnEmploeId;
    }
    
    inline System::Data::DataColumn^  BoreyDataSet::EmploeDataTable::EmploeColumn::get() {
        return this->columnEmploe;
    }
    
    inline System::Int32 BoreyDataSet::EmploeDataTable::Count::get() {
        return this->Rows->Count;
    }
    
    inline s3::BoreyDataSet::EmploeRow^  BoreyDataSet::EmploeDataTable::default::get(System::Int32 index) {
        return (cli::safe_cast<s3::BoreyDataSet::EmploeRow^  >(this->Rows[index]));
    }
    
    inline System::Void BoreyDataSet::EmploeDataTable::AddEmploeRow(s3::BoreyDataSet::EmploeRow^  row) {
        this->Rows->Add(row);
    }
    
    inline s3::BoreyDataSet::EmploeRow^  BoreyDataSet::EmploeDataTable::AddEmploeRow(System::String^  Emploe) {
        s3::BoreyDataSet::EmploeRow^  rowEmploeRow = (cli::safe_cast<s3::BoreyDataSet::EmploeRow^  >(this->NewRow()));
        rowEmploeRow->ItemArray = gcnew cli::array< System::Object^  >(2) {nullptr, Emploe};
        this->Rows->Add(rowEmploeRow);
        return rowEmploeRow;
    }
    
    inline s3::BoreyDataSet::EmploeRow^  BoreyDataSet::EmploeDataTable::FindByEmploeId(System::Int32 EmploeId) {
        return (cli::safe_cast<s3::BoreyDataSet::EmploeRow^  >(this->Rows->Find(gcnew cli::array< System::Object^  >(1) {EmploeId})));
    }
    
    inline System::Collections::IEnumerator^  BoreyDataSet::EmploeDataTable::GetEnumerator() {
        return this->Rows->GetEnumerator();
    }
    
    inline System::Data::DataTable^  BoreyDataSet::EmploeDataTable::Clone() {
        s3::BoreyDataSet::EmploeDataTable^  cln = (cli::safe_cast<s3::BoreyDataSet::EmploeDataTable^  >(__super::Clone()));
        cln->InitVars();
        return cln;
    }
    
    inline System::Data::DataTable^  BoreyDataSet::EmploeDataTable::CreateInstance() {
        return (gcnew s3::BoreyDataSet::EmploeDataTable());
    }
    
    inline System::Void BoreyDataSet::EmploeDataTable::InitVars() {
        this->columnEmploeId = __super::Columns[L"EmploeId"];
        this->columnEmploe = __super::Columns[L"Emploe"];
    }
    
    inline System::Void BoreyDataSet::EmploeDataTable::InitClass() {
        this->columnEmploeId = (gcnew System::Data::DataColumn(L"EmploeId", System::Int32::typeid, nullptr, System::Data::MappingType::Element));
        __super::Columns->Add(this->columnEmploeId);
        this->columnEmploe = (gcnew System::Data::DataColumn(L"Emploe", System::String::typeid, nullptr, System::Data::MappingType::Element));
        __super::Columns->Add(this->columnEmploe);
        this->Constraints->Add((gcnew System::Data::UniqueConstraint(L"Constraint1", gcnew cli::array< System::Data::DataColumn^  >(1) {this->columnEmploeId}, 
                true)));
        this->columnEmploeId->AutoIncrement = true;
        this->columnEmploeId->AllowDBNull = false;
        this->columnEmploeId->Unique = true;
        this->columnEmploe->MaxLength = 50;
    }
    
    inline s3::BoreyDataSet::EmploeRow^  BoreyDataSet::EmploeDataTable::NewEmploeRow() {
        return (cli::safe_cast<s3::BoreyDataSet::EmploeRow^  >(this->NewRow()));
    }
    
    inline System::Data::DataRow^  BoreyDataSet::EmploeDataTable::NewRowFromBuilder(System::Data::DataRowBuilder^  builder) {
        return (gcnew s3::BoreyDataSet::EmploeRow(builder));
    }
    
    inline System::Type^  BoreyDataSet::EmploeDataTable::GetRowType() {
        return s3::BoreyDataSet::EmploeRow::typeid;
    }
    
    inline System::Void BoreyDataSet::EmploeDataTable::OnRowChanged(System::Data::DataRowChangeEventArgs^  e) {
        __super::OnRowChanged(e);
        {
            this->EmploeRowChanged(this, (gcnew s3::BoreyDataSet::EmploeRowChangeEvent((cli::safe_cast<s3::BoreyDataSet::EmploeRow^  >(e->Row)), 
                    e->Action)));
        }
    }
    
    inline System::Void BoreyDataSet::EmploeDataTable::OnRowChanging(System::Data::DataRowChangeEventArgs^  e) {
        __super::OnRowChanging(e);
        {
            this->EmploeRowChanging(this, (gcnew s3::BoreyDataSet::EmploeRowChangeEvent((cli::safe_cast<s3::BoreyDataSet::EmploeRow^  >(e->Row)), 
                    e->Action)));
        }
    }
    
    inline System::Void BoreyDataSet::EmploeDataTable::OnRowDeleted(System::Data::DataRowChangeEventArgs^  e) {
        __super::OnRowDeleted(e);
        {
            this->EmploeRowDeleted(this, (gcnew s3::BoreyDataSet::EmploeRowChangeEvent((cli::safe_cast<s3::BoreyDataSet::EmploeRow^  >(e->Row)), 
                    e->Action)));
        }
    }
    
    inline System::Void BoreyDataSet::EmploeDataTable::OnRowDeleting(System::Data::DataRowChangeEventArgs^  e) {
        __super::OnRowDeleting(e);
        {
            this->EmploeRowDeleting(this, (gcnew s3::BoreyDataSet::EmploeRowChangeEvent((cli::safe_cast<s3::BoreyDataSet::EmploeRow^  >(e->Row)), 
                    e->Action)));
        }
    }
    
    inline System::Void BoreyDataSet::EmploeDataTable::RemoveEmploeRow(s3::BoreyDataSet::EmploeRow^  row) {
        this->Rows->Remove(row);
    }
    
    inline System::Xml::Schema::XmlSchemaComplexType^  BoreyDataSet::EmploeDataTable::GetTypedTableSchema(System::Xml::Schema::XmlSchemaSet^  xs) {
        System::Xml::Schema::XmlSchemaComplexType^  type = (gcnew System::Xml::Schema::XmlSchemaComplexType());
        System::Xml::Schema::XmlSchemaSequence^  sequence = (gcnew System::Xml::Schema::XmlSchemaSequence());
        s3::BoreyDataSet^  ds = (gcnew s3::BoreyDataSet());
        xs->Add(ds->GetSchemaSerializable());
        System::Xml::Schema::XmlSchemaAny^  any1 = (gcnew System::Xml::Schema::XmlSchemaAny());
        any1->Namespace = L"http://www.w3.org/2001/XMLSchema";
        any1->MinOccurs = System::Decimal(0);
        any1->MaxOccurs = System::Decimal::MaxValue;
        any1->ProcessContents = System::Xml::Schema::XmlSchemaContentProcessing::Lax;
        sequence->Items->Add(any1);
        System::Xml::Schema::XmlSchemaAny^  any2 = (gcnew System::Xml::Schema::XmlSchemaAny());
        any2->Namespace = L"urn:schemas-microsoft-com:xml-diffgram-v1";
        any2->MinOccurs = System::Decimal(1);
        any2->ProcessContents = System::Xml::Schema::XmlSchemaContentProcessing::Lax;
        sequence->Items->Add(any2);
        System::Xml::Schema::XmlSchemaAttribute^  attribute1 = (gcnew System::Xml::Schema::XmlSchemaAttribute());
        attribute1->Name = L"namespace";
        attribute1->FixedValue = ds->Namespace;
        type->Attributes->Add(attribute1);
        System::Xml::Schema::XmlSchemaAttribute^  attribute2 = (gcnew System::Xml::Schema::XmlSchemaAttribute());
        attribute2->Name = L"tableTypeName";
        attribute2->FixedValue = L"EmploeDataTable";
        type->Attributes->Add(attribute2);
        type->Particle = sequence;
        return type;
    }
    
    
    inline BoreyDataSet::OrdersDataTable::OrdersDataTable() {
        this->TableName = L"Orders";
        this->BeginInit();
        this->InitClass();
        this->EndInit();
    }
    
    inline BoreyDataSet::OrdersDataTable::OrdersDataTable(System::Data::DataTable^  table) {
        this->TableName = table->TableName;
        if (table->CaseSensitive != table->DataSet->CaseSensitive) {
            this->CaseSensitive = table->CaseSensitive;
        }
        if (table->Locale->ToString() != table->DataSet->Locale->ToString()) {
            this->Locale = table->Locale;
        }
        if (table->Namespace != table->DataSet->Namespace) {
            this->Namespace = table->Namespace;
        }
        this->Prefix = table->Prefix;
        this->MinimumCapacity = table->MinimumCapacity;
    }
    
    inline BoreyDataSet::OrdersDataTable::OrdersDataTable(System::Runtime::Serialization::SerializationInfo^  info, System::Runtime::Serialization::StreamingContext context) : 
            System::Data::DataTable(info, context) {
        this->InitVars();
    }
    
    inline System::Data::DataColumn^  BoreyDataSet::OrdersDataTable::OrdersIdColumn::get() {
        return this->columnOrdersId;
    }
    
    inline System::Data::DataColumn^  BoreyDataSet::OrdersDataTable::CustomerIdColumn::get() {
        return this->columnCustomerId;
    }
    
    inline System::Data::DataColumn^  BoreyDataSet::OrdersDataTable::EmploeIdColumn::get() {
        return this->columnEmploeId;
    }
    
    inline System::Data::DataColumn^  BoreyDataSet::OrdersDataTable::DateColumn::get() {
        return this->columnDate;
    }
    
    inline System::Int32 BoreyDataSet::OrdersDataTable::Count::get() {
        return this->Rows->Count;
    }
    
    inline s3::BoreyDataSet::OrdersRow^  BoreyDataSet::OrdersDataTable::default::get(System::Int32 index) {
        return (cli::safe_cast<s3::BoreyDataSet::OrdersRow^  >(this->Rows[index]));
    }
    
    inline System::Void BoreyDataSet::OrdersDataTable::AddOrdersRow(s3::BoreyDataSet::OrdersRow^  row) {
        this->Rows->Add(row);
    }
    
    inline s3::BoreyDataSet::OrdersRow^  BoreyDataSet::OrdersDataTable::AddOrdersRow(s3::BoreyDataSet::CustomerRow^  parentCustomerRowByCustomerOrders, 
                s3::BoreyDataSet::EmploeRow^  parentEmploeRowByEmploeOrders, System::DateTime Date) {
        s3::BoreyDataSet::OrdersRow^  rowOrdersRow = (cli::safe_cast<s3::BoreyDataSet::OrdersRow^  >(this->NewRow()));
        rowOrdersRow->ItemArray = gcnew cli::array< System::Object^  >(4) {nullptr, parentCustomerRowByCustomerOrders[0], parentEmploeRowByEmploeOrders[0], 
            Date};
        this->Rows->Add(rowOrdersRow);
        return rowOrdersRow;
    }
    
    inline s3::BoreyDataSet::OrdersRow^  BoreyDataSet::OrdersDataTable::FindByOrdersId(System::Int32 OrdersId) {
        return (cli::safe_cast<s3::BoreyDataSet::OrdersRow^  >(this->Rows->Find(gcnew cli::array< System::Object^  >(1) {OrdersId})));
    }
    
    inline System::Collections::IEnumerator^  BoreyDataSet::OrdersDataTable::GetEnumerator() {
        return this->Rows->GetEnumerator();
    }
    
    inline System::Data::DataTable^  BoreyDataSet::OrdersDataTable::Clone() {
        s3::BoreyDataSet::OrdersDataTable^  cln = (cli::safe_cast<s3::BoreyDataSet::OrdersDataTable^  >(__super::Clone()));
        cln->InitVars();
        return cln;
    }
    
    inline System::Data::DataTable^  BoreyDataSet::OrdersDataTable::CreateInstance() {
        return (gcnew s3::BoreyDataSet::OrdersDataTable());
    }
    
    inline System::Void BoreyDataSet::OrdersDataTable::InitVars() {
        this->columnOrdersId = __super::Columns[L"OrdersId"];
        this->columnCustomerId = __super::Columns[L"CustomerId"];
        this->columnEmploeId = __super::Columns[L"EmploeId"];
        this->columnDate = __super::Columns[L"Date"];
    }
    
    inline System::Void BoreyDataSet::OrdersDataTable::InitClass() {
        this->columnOrdersId = (gcnew System::Data::DataColumn(L"OrdersId", System::Int32::typeid, nullptr, System::Data::MappingType::Element));
        __super::Columns->Add(this->columnOrdersId);
        this->columnCustomerId = (gcnew System::Data::DataColumn(L"CustomerId", System::Int32::typeid, nullptr, System::Data::MappingType::Element));
        __super::Columns->Add(this->columnCustomerId);
        this->columnEmploeId = (gcnew System::Data::DataColumn(L"EmploeId", System::Int32::typeid, nullptr, System::Data::MappingType::Element));
        __super::Columns->Add(this->columnEmploeId);
        this->columnDate = (gcnew System::Data::DataColumn(L"Date", System::DateTime::typeid, nullptr, System::Data::MappingType::Element));
        __super::Columns->Add(this->columnDate);
        this->Constraints->Add((gcnew System::Data::UniqueConstraint(L"Constraint1", gcnew cli::array< System::Data::DataColumn^  >(1) {this->columnOrdersId}, 
                true)));
        this->columnOrdersId->AutoIncrement = true;
        this->columnOrdersId->AllowDBNull = false;
        this->columnOrdersId->Unique = true;
    }
    
    inline s3::BoreyDataSet::OrdersRow^  BoreyDataSet::OrdersDataTable::NewOrdersRow() {
        return (cli::safe_cast<s3::BoreyDataSet::OrdersRow^  >(this->NewRow()));
    }
    
    inline System::Data::DataRow^  BoreyDataSet::OrdersDataTable::NewRowFromBuilder(System::Data::DataRowBuilder^  builder) {
        return (gcnew s3::BoreyDataSet::OrdersRow(builder));
    }
    
    inline System::Type^  BoreyDataSet::OrdersDataTable::GetRowType() {
        return s3::BoreyDataSet::OrdersRow::typeid;
    }
    
    inline System::Void BoreyDataSet::OrdersDataTable::OnRowChanged(System::Data::DataRowChangeEventArgs^  e) {
        __super::OnRowChanged(e);
        {
            this->OrdersRowChanged(this, (gcnew s3::BoreyDataSet::OrdersRowChangeEvent((cli::safe_cast<s3::BoreyDataSet::OrdersRow^  >(e->Row)), 
                    e->Action)));
        }
    }
    
    inline System::Void BoreyDataSet::OrdersDataTable::OnRowChanging(System::Data::DataRowChangeEventArgs^  e) {
        __super::OnRowChanging(e);
        {
            this->OrdersRowChanging(this, (gcnew s3::BoreyDataSet::OrdersRowChangeEvent((cli::safe_cast<s3::BoreyDataSet::OrdersRow^  >(e->Row)), 
                    e->Action)));
        }
    }
    
    inline System::Void BoreyDataSet::OrdersDataTable::OnRowDeleted(System::Data::DataRowChangeEventArgs^  e) {
        __super::OnRowDeleted(e);
        {
            this->OrdersRowDeleted(this, (gcnew s3::BoreyDataSet::OrdersRowChangeEvent((cli::safe_cast<s3::BoreyDataSet::OrdersRow^  >(e->Row)), 
                    e->Action)));
        }
    }
    
    inline System::Void BoreyDataSet::OrdersDataTable::OnRowDeleting(System::Data::DataRowChangeEventArgs^  e) {
        __super::OnRowDeleting(e);
        {
            this->OrdersRowDeleting(this, (gcnew s3::BoreyDataSet::OrdersRowChangeEvent((cli::safe_cast<s3::BoreyDataSet::OrdersRow^  >(e->Row)), 
                    e->Action)));
        }
    }
    
    inline System::Void BoreyDataSet::OrdersDataTable::RemoveOrdersRow(s3::BoreyDataSet::OrdersRow^  row) {
        this->Rows->Remove(row);
    }
    
    inline System::Xml::Schema::XmlSchemaComplexType^  BoreyDataSet::OrdersDataTable::GetTypedTableSchema(System::Xml::Schema::XmlSchemaSet^  xs) {
        System::Xml::Schema::XmlSchemaComplexType^  type = (gcnew System::Xml::Schema::XmlSchemaComplexType());
        System::Xml::Schema::XmlSchemaSequence^  sequence = (gcnew System::Xml::Schema::XmlSchemaSequence());
        s3::BoreyDataSet^  ds = (gcnew s3::BoreyDataSet());
        xs->Add(ds->GetSchemaSerializable());
        System::Xml::Schema::XmlSchemaAny^  any1 = (gcnew System::Xml::Schema::XmlSchemaAny());
        any1->Namespace = L"http://www.w3.org/2001/XMLSchema";
        any1->MinOccurs = System::Decimal(0);
        any1->MaxOccurs = System::Decimal::MaxValue;
        any1->ProcessContents = System::Xml::Schema::XmlSchemaContentProcessing::Lax;
        sequence->Items->Add(any1);
        System::Xml::Schema::XmlSchemaAny^  any2 = (gcnew System::Xml::Schema::XmlSchemaAny());
        any2->Namespace = L"urn:schemas-microsoft-com:xml-diffgram-v1";
        any2->MinOccurs = System::Decimal(1);
        any2->ProcessContents = System::Xml::Schema::XmlSchemaContentProcessing::Lax;
        sequence->Items->Add(any2);
        System::Xml::Schema::XmlSchemaAttribute^  attribute1 = (gcnew System::Xml::Schema::XmlSchemaAttribute());
        attribute1->Name = L"namespace";
        attribute1->FixedValue = ds->Namespace;
        type->Attributes->Add(attribute1);
        System::Xml::Schema::XmlSchemaAttribute^  attribute2 = (gcnew System::Xml::Schema::XmlSchemaAttribute());
        attribute2->Name = L"tableTypeName";
        attribute2->FixedValue = L"OrdersDataTable";
        type->Attributes->Add(attribute2);
        type->Particle = sequence;
        return type;
    }
    
    
    inline BoreyDataSet::OrdersDetailsDataTable::OrdersDetailsDataTable() {
        this->TableName = L"OrdersDetails";
        this->BeginInit();
        this->InitClass();
        this->EndInit();
    }
    
    inline BoreyDataSet::OrdersDetailsDataTable::OrdersDetailsDataTable(System::Data::DataTable^  table) {
        this->TableName = table->TableName;
        if (table->CaseSensitive != table->DataSet->CaseSensitive) {
            this->CaseSensitive = table->CaseSensitive;
        }
        if (table->Locale->ToString() != table->DataSet->Locale->ToString()) {
            this->Locale = table->Locale;
        }
        if (table->Namespace != table->DataSet->Namespace) {
            this->Namespace = table->Namespace;
        }
        this->Prefix = table->Prefix;
        this->MinimumCapacity = table->MinimumCapacity;
    }
    
    inline BoreyDataSet::OrdersDetailsDataTable::OrdersDetailsDataTable(System::Runtime::Serialization::SerializationInfo^  info, 
                System::Runtime::Serialization::StreamingContext context) : 
            System::Data::DataTable(info, context) {
        this->InitVars();
    }
    
    inline System::Data::DataColumn^  BoreyDataSet::OrdersDetailsDataTable::OrdersDetailsIdColumn::get() {
        return this->columnOrdersDetailsId;
    }
    
    inline System::Data::DataColumn^  BoreyDataSet::OrdersDetailsDataTable::ProductIdColumn::get() {
        return this->columnProductId;
    }
    
    inline System::Data::DataColumn^  BoreyDataSet::OrdersDetailsDataTable::PriceColumn::get() {
        return this->columnPrice;
    }
    
    inline System::Data::DataColumn^  BoreyDataSet::OrdersDetailsDataTable::VolumeColumn::get() {
        return this->columnVolume;
    }
    
    inline System::Data::DataColumn^  BoreyDataSet::OrdersDetailsDataTable::OrdersIdColumn::get() {
        return this->columnOrdersId;
    }
    
    inline System::Int32 BoreyDataSet::OrdersDetailsDataTable::Count::get() {
        return this->Rows->Count;
    }
    
    inline s3::BoreyDataSet::OrdersDetailsRow^  BoreyDataSet::OrdersDetailsDataTable::default::get(System::Int32 index) {
        return (cli::safe_cast<s3::BoreyDataSet::OrdersDetailsRow^  >(this->Rows[index]));
    }
    
    inline System::Void BoreyDataSet::OrdersDetailsDataTable::AddOrdersDetailsRow(s3::BoreyDataSet::OrdersDetailsRow^  row) {
        this->Rows->Add(row);
    }
    
    inline s3::BoreyDataSet::OrdersDetailsRow^  BoreyDataSet::OrdersDetailsDataTable::AddOrdersDetailsRow(s3::BoreyDataSet::ProductRow^  parentProductRowByProductOrdersDetails, 
                System::Decimal Price, System::Int32 Volume, s3::BoreyDataSet::OrdersRow^  parentOrdersRowByOrdersOrdersDetails) {
        s3::BoreyDataSet::OrdersDetailsRow^  rowOrdersDetailsRow = (cli::safe_cast<s3::BoreyDataSet::OrdersDetailsRow^  >(this->NewRow()));
        rowOrdersDetailsRow->ItemArray = gcnew cli::array< System::Object^  >(5) {nullptr, parentProductRowByProductOrdersDetails[0], 
            Price, Volume, parentOrdersRowByOrdersOrdersDetails[0]};
        this->Rows->Add(rowOrdersDetailsRow);
        return rowOrdersDetailsRow;
    }
    
    inline s3::BoreyDataSet::OrdersDetailsRow^  BoreyDataSet::OrdersDetailsDataTable::FindByOrdersDetailsId(System::Int32 OrdersDetailsId) {
        return (cli::safe_cast<s3::BoreyDataSet::OrdersDetailsRow^  >(this->Rows->Find(gcnew cli::array< System::Object^  >(1) {OrdersDetailsId})));
    }
    
    inline System::Collections::IEnumerator^  BoreyDataSet::OrdersDetailsDataTable::GetEnumerator() {
        return this->Rows->GetEnumerator();
    }
    
    inline System::Data::DataTable^  BoreyDataSet::OrdersDetailsDataTable::Clone() {
        s3::BoreyDataSet::OrdersDetailsDataTable^  cln = (cli::safe_cast<s3::BoreyDataSet::OrdersDetailsDataTable^  >(__super::Clone()));
        cln->InitVars();
        return cln;
    }
    
    inline System::Data::DataTable^  BoreyDataSet::OrdersDetailsDataTable::CreateInstance() {
        return (gcnew s3::BoreyDataSet::OrdersDetailsDataTable());
    }
    
    inline System::Void BoreyDataSet::OrdersDetailsDataTable::InitVars() {
        this->columnOrdersDetailsId = __super::Columns[L"OrdersDetailsId"];
        this->columnProductId = __super::Columns[L"ProductId"];
        this->columnPrice = __super::Columns[L"Price"];
        this->columnVolume = __super::Columns[L"Volume"];
        this->columnOrdersId = __super::Columns[L"OrdersId"];
    }
    
    inline System::Void BoreyDataSet::OrdersDetailsDataTable::InitClass() {
        this->columnOrdersDetailsId = (gcnew System::Data::DataColumn(L"OrdersDetailsId", System::Int32::typeid, nullptr, System::Data::MappingType::Element));
        __super::Columns->Add(this->columnOrdersDetailsId);
        this->columnProductId = (gcnew System::Data::DataColumn(L"ProductId", System::Int32::typeid, nullptr, System::Data::MappingType::Element));
        __super::Columns->Add(this->columnProductId);
        this->columnPrice = (gcnew System::Data::DataColumn(L"Price", System::Decimal::typeid, nullptr, System::Data::MappingType::Element));
        __super::Columns->Add(this->columnPrice);
        this->columnVolume = (gcnew System::Data::DataColumn(L"Volume", System::Int32::typeid, nullptr, System::Data::MappingType::Element));
        __super::Columns->Add(this->columnVolume);
        this->columnOrdersId = (gcnew System::Data::DataColumn(L"OrdersId", System::Int32::typeid, nullptr, System::Data::MappingType::Element));
        __super::Columns->Add(this->columnOrdersId);
        this->Constraints->Add((gcnew System::Data::UniqueConstraint(L"Constraint1", gcnew cli::array< System::Data::DataColumn^  >(1) {this->columnOrdersDetailsId}, 
                true)));
        this->columnOrdersDetailsId->AutoIncrement = true;
        this->columnOrdersDetailsId->AllowDBNull = false;
        this->columnOrdersDetailsId->Unique = true;
    }
    
    inline s3::BoreyDataSet::OrdersDetailsRow^  BoreyDataSet::OrdersDetailsDataTable::NewOrdersDetailsRow() {
        return (cli::safe_cast<s3::BoreyDataSet::OrdersDetailsRow^  >(this->NewRow()));
    }
    
    inline System::Data::DataRow^  BoreyDataSet::OrdersDetailsDataTable::NewRowFromBuilder(System::Data::DataRowBuilder^  builder) {
        return (gcnew s3::BoreyDataSet::OrdersDetailsRow(builder));
    }
    
    inline System::Type^  BoreyDataSet::OrdersDetailsDataTable::GetRowType() {
        return s3::BoreyDataSet::OrdersDetailsRow::typeid;
    }
    
    inline System::Void BoreyDataSet::OrdersDetailsDataTable::OnRowChanged(System::Data::DataRowChangeEventArgs^  e) {
        __super::OnRowChanged(e);
        {
            this->OrdersDetailsRowChanged(this, (gcnew s3::BoreyDataSet::OrdersDetailsRowChangeEvent((cli::safe_cast<s3::BoreyDataSet::OrdersDetailsRow^  >(e->Row)), 
                    e->Action)));
        }
    }
    
    inline System::Void BoreyDataSet::OrdersDetailsDataTable::OnRowChanging(System::Data::DataRowChangeEventArgs^  e) {
        __super::OnRowChanging(e);
        {
            this->OrdersDetailsRowChanging(this, (gcnew s3::BoreyDataSet::OrdersDetailsRowChangeEvent((cli::safe_cast<s3::BoreyDataSet::OrdersDetailsRow^  >(e->Row)), 
                    e->Action)));
        }
    }
    
    inline System::Void BoreyDataSet::OrdersDetailsDataTable::OnRowDeleted(System::Data::DataRowChangeEventArgs^  e) {
        __super::OnRowDeleted(e);
        {
            this->OrdersDetailsRowDeleted(this, (gcnew s3::BoreyDataSet::OrdersDetailsRowChangeEvent((cli::safe_cast<s3::BoreyDataSet::OrdersDetailsRow^  >(e->Row)), 
                    e->Action)));
        }
    }
    
    inline System::Void BoreyDataSet::OrdersDetailsDataTable::OnRowDeleting(System::Data::DataRowChangeEventArgs^  e) {
        __super::OnRowDeleting(e);
        {
            this->OrdersDetailsRowDeleting(this, (gcnew s3::BoreyDataSet::OrdersDetailsRowChangeEvent((cli::safe_cast<s3::BoreyDataSet::OrdersDetailsRow^  >(e->Row)), 
                    e->Action)));
        }
    }
    
    inline System::Void BoreyDataSet::OrdersDetailsDataTable::RemoveOrdersDetailsRow(s3::BoreyDataSet::OrdersDetailsRow^  row) {
        this->Rows->Remove(row);
    }
    
    inline System::Xml::Schema::XmlSchemaComplexType^  BoreyDataSet::OrdersDetailsDataTable::GetTypedTableSchema(System::Xml::Schema::XmlSchemaSet^  xs) {
        System::Xml::Schema::XmlSchemaComplexType^  type = (gcnew System::Xml::Schema::XmlSchemaComplexType());
        System::Xml::Schema::XmlSchemaSequence^  sequence = (gcnew System::Xml::Schema::XmlSchemaSequence());
        s3::BoreyDataSet^  ds = (gcnew s3::BoreyDataSet());
        xs->Add(ds->GetSchemaSerializable());
        System::Xml::Schema::XmlSchemaAny^  any1 = (gcnew System::Xml::Schema::XmlSchemaAny());
        any1->Namespace = L"http://www.w3.org/2001/XMLSchema";
        any1->MinOccurs = System::Decimal(0);
        any1->MaxOccurs = System::Decimal::MaxValue;
        any1->ProcessContents = System::Xml::Schema::XmlSchemaContentProcessing::Lax;
        sequence->Items->Add(any1);
        System::Xml::Schema::XmlSchemaAny^  any2 = (gcnew System::Xml::Schema::XmlSchemaAny());
        any2->Namespace = L"urn:schemas-microsoft-com:xml-diffgram-v1";
        any2->MinOccurs = System::Decimal(1);
        any2->ProcessContents = System::Xml::Schema::XmlSchemaContentProcessing::Lax;
        sequence->Items->Add(any2);
        System::Xml::Schema::XmlSchemaAttribute^  attribute1 = (gcnew System::Xml::Schema::XmlSchemaAttribute());
        attribute1->Name = L"namespace";
        attribute1->FixedValue = ds->Namespace;
        type->Attributes->Add(attribute1);
        System::Xml::Schema::XmlSchemaAttribute^  attribute2 = (gcnew System::Xml::Schema::XmlSchemaAttribute());
        attribute2->Name = L"tableTypeName";
        attribute2->FixedValue = L"OrdersDetailsDataTable";
        type->Attributes->Add(attribute2);
        type->Particle = sequence;
        return type;
    }
    
    
    inline BoreyDataSet::ProductDataTable::ProductDataTable() {
        this->TableName = L"Product";
        this->BeginInit();
        this->InitClass();
        this->EndInit();
    }
    
    inline BoreyDataSet::ProductDataTable::ProductDataTable(System::Data::DataTable^  table) {
        this->TableName = table->TableName;
        if (table->CaseSensitive != table->DataSet->CaseSensitive) {
            this->CaseSensitive = table->CaseSensitive;
        }
        if (table->Locale->ToString() != table->DataSet->Locale->ToString()) {
            this->Locale = table->Locale;
        }
        if (table->Namespace != table->DataSet->Namespace) {
            this->Namespace = table->Namespace;
        }
        this->Prefix = table->Prefix;
        this->MinimumCapacity = table->MinimumCapacity;
    }
    
    inline BoreyDataSet::ProductDataTable::ProductDataTable(System::Runtime::Serialization::SerializationInfo^  info, System::Runtime::Serialization::StreamingContext context) : 
            System::Data::DataTable(info, context) {
        this->InitVars();
    }
    
    inline System::Data::DataColumn^  BoreyDataSet::ProductDataTable::ProductIdColumn::get() {
        return this->columnProductId;
    }
    
    inline System::Data::DataColumn^  BoreyDataSet::ProductDataTable::ProductNameColumn::get() {
        return this->columnProductName;
    }
    
    inline System::Int32 BoreyDataSet::ProductDataTable::Count::get() {
        return this->Rows->Count;
    }
    
    inline s3::BoreyDataSet::ProductRow^  BoreyDataSet::ProductDataTable::default::get(System::Int32 index) {
        return (cli::safe_cast<s3::BoreyDataSet::ProductRow^  >(this->Rows[index]));
    }
    
    inline System::Void BoreyDataSet::ProductDataTable::AddProductRow(s3::BoreyDataSet::ProductRow^  row) {
        this->Rows->Add(row);
    }
    
    inline s3::BoreyDataSet::ProductRow^  BoreyDataSet::ProductDataTable::AddProductRow(System::String^  ProductName) {
        s3::BoreyDataSet::ProductRow^  rowProductRow = (cli::safe_cast<s3::BoreyDataSet::ProductRow^  >(this->NewRow()));
        rowProductRow->ItemArray = gcnew cli::array< System::Object^  >(2) {nullptr, ProductName};
        this->Rows->Add(rowProductRow);
        return rowProductRow;
    }
    
    inline s3::BoreyDataSet::ProductRow^  BoreyDataSet::ProductDataTable::FindByProductId(System::Int32 ProductId) {
        return (cli::safe_cast<s3::BoreyDataSet::ProductRow^  >(this->Rows->Find(gcnew cli::array< System::Object^  >(1) {ProductId})));
    }
    
    inline System::Collections::IEnumerator^  BoreyDataSet::ProductDataTable::GetEnumerator() {
        return this->Rows->GetEnumerator();
    }
    
    inline System::Data::DataTable^  BoreyDataSet::ProductDataTable::Clone() {
        s3::BoreyDataSet::ProductDataTable^  cln = (cli::safe_cast<s3::BoreyDataSet::ProductDataTable^  >(__super::Clone()));
        cln->InitVars();
        return cln;
    }
    
    inline System::Data::DataTable^  BoreyDataSet::ProductDataTable::CreateInstance() {
        return (gcnew s3::BoreyDataSet::ProductDataTable());
    }
    
    inline System::Void BoreyDataSet::ProductDataTable::InitVars() {
        this->columnProductId = __super::Columns[L"ProductId"];
        this->columnProductName = __super::Columns[L"ProductName"];
    }
    
    inline System::Void BoreyDataSet::ProductDataTable::InitClass() {
        this->columnProductId = (gcnew System::Data::DataColumn(L"ProductId", System::Int32::typeid, nullptr, System::Data::MappingType::Element));
        __super::Columns->Add(this->columnProductId);
        this->columnProductName = (gcnew System::Data::DataColumn(L"ProductName", System::String::typeid, nullptr, System::Data::MappingType::Element));
        __super::Columns->Add(this->columnProductName);
        this->Constraints->Add((gcnew System::Data::UniqueConstraint(L"Constraint1", gcnew cli::array< System::Data::DataColumn^  >(1) {this->columnProductId}, 
                true)));
        this->columnProductId->AutoIncrement = true;
        this->columnProductId->AllowDBNull = false;
        this->columnProductId->Unique = true;
        this->columnProductName->MaxLength = 50;
    }
    
    inline s3::BoreyDataSet::ProductRow^  BoreyDataSet::ProductDataTable::NewProductRow() {
        return (cli::safe_cast<s3::BoreyDataSet::ProductRow^  >(this->NewRow()));
    }
    
    inline System::Data::DataRow^  BoreyDataSet::ProductDataTable::NewRowFromBuilder(System::Data::DataRowBuilder^  builder) {
        return (gcnew s3::BoreyDataSet::ProductRow(builder));
    }
    
    inline System::Type^  BoreyDataSet::ProductDataTable::GetRowType() {
        return s3::BoreyDataSet::ProductRow::typeid;
    }
    
    inline System::Void BoreyDataSet::ProductDataTable::OnRowChanged(System::Data::DataRowChangeEventArgs^  e) {
        __super::OnRowChanged(e);
        {
            this->ProductRowChanged(this, (gcnew s3::BoreyDataSet::ProductRowChangeEvent((cli::safe_cast<s3::BoreyDataSet::ProductRow^  >(e->Row)), 
                    e->Action)));
        }
    }
    
    inline System::Void BoreyDataSet::ProductDataTable::OnRowChanging(System::Data::DataRowChangeEventArgs^  e) {
        __super::OnRowChanging(e);
        {
            this->ProductRowChanging(this, (gcnew s3::BoreyDataSet::ProductRowChangeEvent((cli::safe_cast<s3::BoreyDataSet::ProductRow^  >(e->Row)), 
                    e->Action)));
        }
    }
    
    inline System::Void BoreyDataSet::ProductDataTable::OnRowDeleted(System::Data::DataRowChangeEventArgs^  e) {
        __super::OnRowDeleted(e);
        {
            this->ProductRowDeleted(this, (gcnew s3::BoreyDataSet::ProductRowChangeEvent((cli::safe_cast<s3::BoreyDataSet::ProductRow^  >(e->Row)), 
                    e->Action)));
        }
    }
    
    inline System::Void BoreyDataSet::ProductDataTable::OnRowDeleting(System::Data::DataRowChangeEventArgs^  e) {
        __super::OnRowDeleting(e);
        {
            this->ProductRowDeleting(this, (gcnew s3::BoreyDataSet::ProductRowChangeEvent((cli::safe_cast<s3::BoreyDataSet::ProductRow^  >(e->Row)), 
                    e->Action)));
        }
    }
    
    inline System::Void BoreyDataSet::ProductDataTable::RemoveProductRow(s3::BoreyDataSet::ProductRow^  row) {
        this->Rows->Remove(row);
    }
    
    inline System::Xml::Schema::XmlSchemaComplexType^  BoreyDataSet::ProductDataTable::GetTypedTableSchema(System::Xml::Schema::XmlSchemaSet^  xs) {
        System::Xml::Schema::XmlSchemaComplexType^  type = (gcnew System::Xml::Schema::XmlSchemaComplexType());
        System::Xml::Schema::XmlSchemaSequence^  sequence = (gcnew System::Xml::Schema::XmlSchemaSequence());
        s3::BoreyDataSet^  ds = (gcnew s3::BoreyDataSet());
        xs->Add(ds->GetSchemaSerializable());
        System::Xml::Schema::XmlSchemaAny^  any1 = (gcnew System::Xml::Schema::XmlSchemaAny());
        any1->Namespace = L"http://www.w3.org/2001/XMLSchema";
        any1->MinOccurs = System::Decimal(0);
        any1->MaxOccurs = System::Decimal::MaxValue;
        any1->ProcessContents = System::Xml::Schema::XmlSchemaContentProcessing::Lax;
        sequence->Items->Add(any1);
        System::Xml::Schema::XmlSchemaAny^  any2 = (gcnew System::Xml::Schema::XmlSchemaAny());
        any2->Namespace = L"urn:schemas-microsoft-com:xml-diffgram-v1";
        any2->MinOccurs = System::Decimal(1);
        any2->ProcessContents = System::Xml::Schema::XmlSchemaContentProcessing::Lax;
        sequence->Items->Add(any2);
        System::Xml::Schema::XmlSchemaAttribute^  attribute1 = (gcnew System::Xml::Schema::XmlSchemaAttribute());
        attribute1->Name = L"namespace";
        attribute1->FixedValue = ds->Namespace;
        type->Attributes->Add(attribute1);
        System::Xml::Schema::XmlSchemaAttribute^  attribute2 = (gcnew System::Xml::Schema::XmlSchemaAttribute());
        attribute2->Name = L"tableTypeName";
        attribute2->FixedValue = L"ProductDataTable";
        type->Attributes->Add(attribute2);
        type->Particle = sequence;
        return type;
    }
    
    
    inline BoreyDataSet::CustomerRow::CustomerRow(System::Data::DataRowBuilder^  rb) : 
            System::Data::DataRow(rb) {
        this->tableCustomer = (cli::safe_cast<s3::BoreyDataSet::CustomerDataTable^  >(this->Table));
    }
    
    inline System::Int32 BoreyDataSet::CustomerRow::CustomerId::get() {
        return (*cli::safe_cast<System::Int32^>(this[this->tableCustomer->CustomerIdColumn]));
    }
    inline System::Void BoreyDataSet::CustomerRow::CustomerId::set(System::Int32 value) {
        this[this->tableCustomer->CustomerIdColumn] = value;
    }
    
    inline System::String^  BoreyDataSet::CustomerRow::CustomerName::get() {
        try {
            return (cli::safe_cast<System::String^  >(this[this->tableCustomer->CustomerNameColumn]));
        }
        catch (System::InvalidCastException^ e) {
            throw (gcnew System::Data::StrongTypingException(L"The value for column \'CustomerName\' in table \'Customer\' is DBNull.", 
                e));
        }
    }
    inline System::Void BoreyDataSet::CustomerRow::CustomerName::set(System::String^  value) {
        this[this->tableCustomer->CustomerNameColumn] = value;
    }
    
    inline System::Boolean BoreyDataSet::CustomerRow::IsCustomerNameNull() {
        return this->IsNull(this->tableCustomer->CustomerNameColumn);
    }
    
    inline System::Void BoreyDataSet::CustomerRow::SetCustomerNameNull() {
        this[this->tableCustomer->CustomerNameColumn] = System::Convert::DBNull;
    }
    
    inline cli::array< s3::BoreyDataSet::OrdersRow^  >^  BoreyDataSet::CustomerRow::GetOrdersRows() {
        return (cli::safe_cast<cli::array< s3::BoreyDataSet::OrdersRow^  >^  >(__super::GetChildRows(this->Table->ChildRelations[L"CustomerOrders"])));
    }
    
    
    inline BoreyDataSet::EmploeRow::EmploeRow(System::Data::DataRowBuilder^  rb) : 
            System::Data::DataRow(rb) {
        this->tableEmploe = (cli::safe_cast<s3::BoreyDataSet::EmploeDataTable^  >(this->Table));
    }
    
    inline System::Int32 BoreyDataSet::EmploeRow::EmploeId::get() {
        return (*cli::safe_cast<System::Int32^>(this[this->tableEmploe->EmploeIdColumn]));
    }
    inline System::Void BoreyDataSet::EmploeRow::EmploeId::set(System::Int32 value) {
        this[this->tableEmploe->EmploeIdColumn] = value;
    }
    
    inline System::String^  BoreyDataSet::EmploeRow::Emploe::get() {
        try {
            return (cli::safe_cast<System::String^  >(this[this->tableEmploe->EmploeColumn]));
        }
        catch (System::InvalidCastException^ e) {
            throw (gcnew System::Data::StrongTypingException(L"The value for column \'Emploe\' in table \'Emploe\' is DBNull.", e));
        }
    }
    inline System::Void BoreyDataSet::EmploeRow::Emploe::set(System::String^  value) {
        this[this->tableEmploe->EmploeColumn] = value;
    }
    
    inline System::Boolean BoreyDataSet::EmploeRow::IsEmploeNull() {
        return this->IsNull(this->tableEmploe->EmploeColumn);
    }
    
    inline System::Void BoreyDataSet::EmploeRow::SetEmploeNull() {
        this[this->tableEmploe->EmploeColumn] = System::Convert::DBNull;
    }
    
    inline cli::array< s3::BoreyDataSet::OrdersRow^  >^  BoreyDataSet::EmploeRow::GetOrdersRows() {
        return (cli::safe_cast<cli::array< s3::BoreyDataSet::OrdersRow^  >^  >(__super::GetChildRows(this->Table->ChildRelations[L"EmploeOrders"])));
    }
    
    
    inline BoreyDataSet::OrdersRow::OrdersRow(System::Data::DataRowBuilder^  rb) : 
            System::Data::DataRow(rb) {
        this->tableOrders = (cli::safe_cast<s3::BoreyDataSet::OrdersDataTable^  >(this->Table));
    }
    
    inline System::Int32 BoreyDataSet::OrdersRow::OrdersId::get() {
        return (*cli::safe_cast<System::Int32^>(this[this->tableOrders->OrdersIdColumn]));
    }
    inline System::Void BoreyDataSet::OrdersRow::OrdersId::set(System::Int32 value) {
        this[this->tableOrders->OrdersIdColumn] = value;
    }
    
    inline System::Int32 BoreyDataSet::OrdersRow::CustomerId::get() {
        try {
            return (*cli::safe_cast<System::Int32^>(this[this->tableOrders->CustomerIdColumn]));
        }
        catch (System::InvalidCastException^ e) {
            throw (gcnew System::Data::StrongTypingException(L"The value for column \'CustomerId\' in table \'Orders\' is DBNull.", 
                e));
        }
    }
    inline System::Void BoreyDataSet::OrdersRow::CustomerId::set(System::Int32 value) {
        this[this->tableOrders->CustomerIdColumn] = value;
    }
    
    inline System::Int32 BoreyDataSet::OrdersRow::EmploeId::get() {
        try {
            return (*cli::safe_cast<System::Int32^>(this[this->tableOrders->EmploeIdColumn]));
        }
        catch (System::InvalidCastException^ e) {
            throw (gcnew System::Data::StrongTypingException(L"The value for column \'EmploeId\' in table \'Orders\' is DBNull.", 
                e));
        }
    }
    inline System::Void BoreyDataSet::OrdersRow::EmploeId::set(System::Int32 value) {
        this[this->tableOrders->EmploeIdColumn] = value;
    }
    
    inline System::DateTime BoreyDataSet::OrdersRow::Date::get() {
        try {
            return (*cli::safe_cast<System::DateTime^>(this[this->tableOrders->DateColumn]));
        }
        catch (System::InvalidCastException^ e) {
            throw (gcnew System::Data::StrongTypingException(L"The value for column \'Date\' in table \'Orders\' is DBNull.", e));
        }
    }
    inline System::Void BoreyDataSet::OrdersRow::Date::set(System::DateTime value) {
        this[this->tableOrders->DateColumn] = value;
    }
    
    inline s3::BoreyDataSet::CustomerRow^  BoreyDataSet::OrdersRow::CustomerRow::get() {
        return (cli::safe_cast<s3::BoreyDataSet::CustomerRow^  >(this->GetParentRow(this->Table->ParentRelations[L"CustomerOrders"])));
    }
    inline System::Void BoreyDataSet::OrdersRow::CustomerRow::set(s3::BoreyDataSet::CustomerRow^  value) {
        this->SetParentRow(value, this->Table->ParentRelations[L"CustomerOrders"]);
    }
    
    inline s3::BoreyDataSet::EmploeRow^  BoreyDataSet::OrdersRow::EmploeRow::get() {
        return (cli::safe_cast<s3::BoreyDataSet::EmploeRow^  >(this->GetParentRow(this->Table->ParentRelations[L"EmploeOrders"])));
    }
    inline System::Void BoreyDataSet::OrdersRow::EmploeRow::set(s3::BoreyDataSet::EmploeRow^  value) {
        this->SetParentRow(value, this->Table->ParentRelations[L"EmploeOrders"]);
    }
    
    inline System::Boolean BoreyDataSet::OrdersRow::IsCustomerIdNull() {
        return this->IsNull(this->tableOrders->CustomerIdColumn);
    }
    
    inline System::Void BoreyDataSet::OrdersRow::SetCustomerIdNull() {
        this[this->tableOrders->CustomerIdColumn] = System::Convert::DBNull;
    }
    
    inline System::Boolean BoreyDataSet::OrdersRow::IsEmploeIdNull() {
        return this->IsNull(this->tableOrders->EmploeIdColumn);
    }
    
    inline System::Void BoreyDataSet::OrdersRow::SetEmploeIdNull() {
        this[this->tableOrders->EmploeIdColumn] = System::Convert::DBNull;
    }
    
    inline System::Boolean BoreyDataSet::OrdersRow::IsDateNull() {
        return this->IsNull(this->tableOrders->DateColumn);
    }
    
    inline System::Void BoreyDataSet::OrdersRow::SetDateNull() {
        this[this->tableOrders->DateColumn] = System::Convert::DBNull;
    }
    
    inline cli::array< s3::BoreyDataSet::OrdersDetailsRow^  >^  BoreyDataSet::OrdersRow::GetOrdersDetailsRows() {
        return (cli::safe_cast<cli::array< s3::BoreyDataSet::OrdersDetailsRow^  >^  >(__super::GetChildRows(this->Table->ChildRelations[L"OrdersOrdersDetails"])));
    }
    
    
    inline BoreyDataSet::OrdersDetailsRow::OrdersDetailsRow(System::Data::DataRowBuilder^  rb) : 
            System::Data::DataRow(rb) {
        this->tableOrdersDetails = (cli::safe_cast<s3::BoreyDataSet::OrdersDetailsDataTable^  >(this->Table));
    }
    
    inline System::Int32 BoreyDataSet::OrdersDetailsRow::OrdersDetailsId::get() {
        return (*cli::safe_cast<System::Int32^>(this[this->tableOrdersDetails->OrdersDetailsIdColumn]));
    }
    inline System::Void BoreyDataSet::OrdersDetailsRow::OrdersDetailsId::set(System::Int32 value) {
        this[this->tableOrdersDetails->OrdersDetailsIdColumn] = value;
    }
    
    inline System::Int32 BoreyDataSet::OrdersDetailsRow::ProductId::get() {
        try {
            return (*cli::safe_cast<System::Int32^>(this[this->tableOrdersDetails->ProductIdColumn]));
        }
        catch (System::InvalidCastException^ e) {
            throw (gcnew System::Data::StrongTypingException(L"The value for column \'ProductId\' in table \'OrdersDetails\' is DBNull.", 
                e));
        }
    }
    inline System::Void BoreyDataSet::OrdersDetailsRow::ProductId::set(System::Int32 value) {
        this[this->tableOrdersDetails->ProductIdColumn] = value;
    }
    
    inline System::Decimal BoreyDataSet::OrdersDetailsRow::Price::get() {
        try {
            return (*cli::safe_cast<System::Decimal^>(this[this->tableOrdersDetails->PriceColumn]));
        }
        catch (System::InvalidCastException^ e) {
            throw (gcnew System::Data::StrongTypingException(L"The value for column \'Price\' in table \'OrdersDetails\' is DBNull.", 
                e));
        }
    }
    inline System::Void BoreyDataSet::OrdersDetailsRow::Price::set(System::Decimal value) {
        this[this->tableOrdersDetails->PriceColumn] = value;
    }
    
    inline System::Int32 BoreyDataSet::OrdersDetailsRow::Volume::get() {
        try {
            return (*cli::safe_cast<System::Int32^>(this[this->tableOrdersDetails->VolumeColumn]));
        }
        catch (System::InvalidCastException^ e) {
            throw (gcnew System::Data::StrongTypingException(L"The value for column \'Volume\' in table \'OrdersDetails\' is DBNull.", 
                e));
        }
    }
    inline System::Void BoreyDataSet::OrdersDetailsRow::Volume::set(System::Int32 value) {
        this[this->tableOrdersDetails->VolumeColumn] = value;
    }
    
    inline System::Int32 BoreyDataSet::OrdersDetailsRow::OrdersId::get() {
        try {
            return (*cli::safe_cast<System::Int32^>(this[this->tableOrdersDetails->OrdersIdColumn]));
        }
        catch (System::InvalidCastException^ e) {
            throw (gcnew System::Data::StrongTypingException(L"The value for column \'OrdersId\' in table \'OrdersDetails\' is DBNull.", 
                e));
        }
    }
    inline System::Void BoreyDataSet::OrdersDetailsRow::OrdersId::set(System::Int32 value) {
        this[this->tableOrdersDetails->OrdersIdColumn] = value;
    }
    
    inline s3::BoreyDataSet::OrdersRow^  BoreyDataSet::OrdersDetailsRow::OrdersRow::get() {
        return (cli::safe_cast<s3::BoreyDataSet::OrdersRow^  >(this->GetParentRow(this->Table->ParentRelations[L"OrdersOrdersDetails"])));
    }
    inline System::Void BoreyDataSet::OrdersDetailsRow::OrdersRow::set(s3::BoreyDataSet::OrdersRow^  value) {
        this->SetParentRow(value, this->Table->ParentRelations[L"OrdersOrdersDetails"]);
    }
    
    inline s3::BoreyDataSet::ProductRow^  BoreyDataSet::OrdersDetailsRow::ProductRow::get() {
        return (cli::safe_cast<s3::BoreyDataSet::ProductRow^  >(this->GetParentRow(this->Table->ParentRelations[L"ProductOrdersDetails"])));
    }
    inline System::Void BoreyDataSet::OrdersDetailsRow::ProductRow::set(s3::BoreyDataSet::ProductRow^  value) {
        this->SetParentRow(value, this->Table->ParentRelations[L"ProductOrdersDetails"]);
    }
    
    inline System::Boolean BoreyDataSet::OrdersDetailsRow::IsProductIdNull() {
        return this->IsNull(this->tableOrdersDetails->ProductIdColumn);
    }
    
    inline System::Void BoreyDataSet::OrdersDetailsRow::SetProductIdNull() {
        this[this->tableOrdersDetails->ProductIdColumn] = System::Convert::DBNull;
    }
    
    inline System::Boolean BoreyDataSet::OrdersDetailsRow::IsPriceNull() {
        return this->IsNull(this->tableOrdersDetails->PriceColumn);
    }
    
    inline System::Void BoreyDataSet::OrdersDetailsRow::SetPriceNull() {
        this[this->tableOrdersDetails->PriceColumn] = System::Convert::DBNull;
    }
    
    inline System::Boolean BoreyDataSet::OrdersDetailsRow::IsVolumeNull() {
        return this->IsNull(this->tableOrdersDetails->VolumeColumn);
    }
    
    inline System::Void BoreyDataSet::OrdersDetailsRow::SetVolumeNull() {
        this[this->tableOrdersDetails->VolumeColumn] = System::Convert::DBNull;
    }
    
    inline System::Boolean BoreyDataSet::OrdersDetailsRow::IsOrdersIdNull() {
        return this->IsNull(this->tableOrdersDetails->OrdersIdColumn);
    }
    
    inline System::Void BoreyDataSet::OrdersDetailsRow::SetOrdersIdNull() {
        this[this->tableOrdersDetails->OrdersIdColumn] = System::Convert::DBNull;
    }
    
    
    inline BoreyDataSet::ProductRow::ProductRow(System::Data::DataRowBuilder^  rb) : 
            System::Data::DataRow(rb) {
        this->tableProduct = (cli::safe_cast<s3::BoreyDataSet::ProductDataTable^  >(this->Table));
    }
    
    inline System::Int32 BoreyDataSet::ProductRow::ProductId::get() {
        return (*cli::safe_cast<System::Int32^>(this[this->tableProduct->ProductIdColumn]));
    }
    inline System::Void BoreyDataSet::ProductRow::ProductId::set(System::Int32 value) {
        this[this->tableProduct->ProductIdColumn] = value;
    }
    
    inline System::String^  BoreyDataSet::ProductRow::ProductName::get() {
        try {
            return (cli::safe_cast<System::String^  >(this[this->tableProduct->ProductNameColumn]));
        }
        catch (System::InvalidCastException^ e) {
            throw (gcnew System::Data::StrongTypingException(L"The value for column \'ProductName\' in table \'Product\' is DBNull.", 
                e));
        }
    }
    inline System::Void BoreyDataSet::ProductRow::ProductName::set(System::String^  value) {
        this[this->tableProduct->ProductNameColumn] = value;
    }
    
    inline System::Boolean BoreyDataSet::ProductRow::IsProductNameNull() {
        return this->IsNull(this->tableProduct->ProductNameColumn);
    }
    
    inline System::Void BoreyDataSet::ProductRow::SetProductNameNull() {
        this[this->tableProduct->ProductNameColumn] = System::Convert::DBNull;
    }
    
    inline cli::array< s3::BoreyDataSet::OrdersDetailsRow^  >^  BoreyDataSet::ProductRow::GetOrdersDetailsRows() {
        return (cli::safe_cast<cli::array< s3::BoreyDataSet::OrdersDetailsRow^  >^  >(__super::GetChildRows(this->Table->ChildRelations[L"ProductOrdersDetails"])));
    }
    
    
    inline BoreyDataSet::CustomerRowChangeEvent::CustomerRowChangeEvent(s3::BoreyDataSet::CustomerRow^  row, System::Data::DataRowAction action) {
        this->eventRow = row;
        this->eventAction = action;
    }
    
    inline s3::BoreyDataSet::CustomerRow^  BoreyDataSet::CustomerRowChangeEvent::Row::get() {
        return this->eventRow;
    }
    
    inline System::Data::DataRowAction BoreyDataSet::CustomerRowChangeEvent::Action::get() {
        return this->eventAction;
    }
    
    
    inline BoreyDataSet::EmploeRowChangeEvent::EmploeRowChangeEvent(s3::BoreyDataSet::EmploeRow^  row, System::Data::DataRowAction action) {
        this->eventRow = row;
        this->eventAction = action;
    }
    
    inline s3::BoreyDataSet::EmploeRow^  BoreyDataSet::EmploeRowChangeEvent::Row::get() {
        return this->eventRow;
    }
    
    inline System::Data::DataRowAction BoreyDataSet::EmploeRowChangeEvent::Action::get() {
        return this->eventAction;
    }
    
    
    inline BoreyDataSet::OrdersRowChangeEvent::OrdersRowChangeEvent(s3::BoreyDataSet::OrdersRow^  row, System::Data::DataRowAction action) {
        this->eventRow = row;
        this->eventAction = action;
    }
    
    inline s3::BoreyDataSet::OrdersRow^  BoreyDataSet::OrdersRowChangeEvent::Row::get() {
        return this->eventRow;
    }
    
    inline System::Data::DataRowAction BoreyDataSet::OrdersRowChangeEvent::Action::get() {
        return this->eventAction;
    }
    
    
    inline BoreyDataSet::OrdersDetailsRowChangeEvent::OrdersDetailsRowChangeEvent(s3::BoreyDataSet::OrdersDetailsRow^  row, 
                System::Data::DataRowAction action) {
        this->eventRow = row;
        this->eventAction = action;
    }
    
    inline s3::BoreyDataSet::OrdersDetailsRow^  BoreyDataSet::OrdersDetailsRowChangeEvent::Row::get() {
        return this->eventRow;
    }
    
    inline System::Data::DataRowAction BoreyDataSet::OrdersDetailsRowChangeEvent::Action::get() {
        return this->eventAction;
    }
    
    
    inline BoreyDataSet::ProductRowChangeEvent::ProductRowChangeEvent(s3::BoreyDataSet::ProductRow^  row, System::Data::DataRowAction action) {
        this->eventRow = row;
        this->eventAction = action;
    }
    
    inline s3::BoreyDataSet::ProductRow^  BoreyDataSet::ProductRowChangeEvent::Row::get() {
        return this->eventRow;
    }
    
    inline System::Data::DataRowAction BoreyDataSet::ProductRowChangeEvent::Action::get() {
        return this->eventAction;
    }
}
namespace s3 {
    namespace BoreyDataSetTableAdapters {
    
    using namespace System;
    ref class CustomerTableAdapter;
    ref class EmploeTableAdapter;
    ref class OrdersTableAdapter;
    ref class OrdersDetailsTableAdapter;
    ref class ProductTableAdapter;
    
    
    [System::CodeDom::Compiler::GeneratedCodeAttribute(L"System.Data.Design.TypedDataSetGenerator", L"2.0.0.0"), 
    System::ComponentModel::DesignerCategoryAttribute(L"code"), 
    System::ComponentModel::ToolboxItem(true), 
    System::ComponentModel::DataObjectAttribute(true), 
    System::ComponentModel::DesignerAttribute(L"Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" 
L", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"), 
    System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
    public ref class CustomerTableAdapter : public System::ComponentModel::Component {
        
        private: System::Data::OleDb::OleDbDataAdapter^  _adapter;
        
        private: System::Data::OleDb::OleDbConnection^  _connection;
        
        private: cli::array< System::Data::OleDb::OleDbCommand^  >^  _commandCollection;
        
        private: System::Boolean _clearBeforeFill;
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        CustomerTableAdapter();
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
         property System::Data::OleDb::OleDbDataAdapter^  Adapter {
            System::Data::OleDb::OleDbDataAdapter^  get();
        }
        
        internal: [System::Diagnostics::DebuggerNonUserCodeAttribute]
         property System::Data::OleDb::OleDbConnection^  Connection {
            System::Data::OleDb::OleDbConnection^  get();
            System::Void set(System::Data::OleDb::OleDbConnection^  value);
        }
        
        protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
         property cli::array< System::Data::OleDb::OleDbCommand^  >^  CommandCollection {
            cli::array< System::Data::OleDb::OleDbCommand^  >^  get();
        }
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
         property System::Boolean ClearBeforeFill {
            System::Boolean get();
            System::Void set(System::Boolean value);
        }
        
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Void InitAdapter();
        
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Void InitConnection();
        
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Void InitCommandCollection();
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Fill, true)]
        virtual System::Int32 Fill(s3::BoreyDataSet::CustomerDataTable^  dataTable);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Select, true)]
        virtual s3::BoreyDataSet::CustomerDataTable^  GetData();
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        virtual System::Int32 Update(s3::BoreyDataSet::CustomerDataTable^  dataTable);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        virtual System::Int32 Update(s3::BoreyDataSet^  dataSet);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        virtual System::Int32 Update(System::Data::DataRow^  dataRow);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        virtual System::Int32 Update(cli::array< System::Data::DataRow^  >^  dataRows);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Delete, true)]
        virtual System::Int32 Delete(System::Int32 Original_CustomerId, System::String^  Original_CustomerName);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Insert, true)]
        virtual System::Int32 Insert(System::String^  CustomerName);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Update, true)]
        virtual System::Int32 Update(System::String^  CustomerName, System::Int32 Original_CustomerId, System::String^  Original_CustomerName);
    };
    
    [System::CodeDom::Compiler::GeneratedCodeAttribute(L"System.Data.Design.TypedDataSetGenerator", L"2.0.0.0"), 
    System::ComponentModel::DesignerCategoryAttribute(L"code"), 
    System::ComponentModel::ToolboxItem(true), 
    System::ComponentModel::DataObjectAttribute(true), 
    System::ComponentModel::DesignerAttribute(L"Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" 
L", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"), 
    System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
    public ref class EmploeTableAdapter : public System::ComponentModel::Component {
        
        private: System::Data::OleDb::OleDbDataAdapter^  _adapter;
        
        private: System::Data::OleDb::OleDbConnection^  _connection;
        
        private: cli::array< System::Data::OleDb::OleDbCommand^  >^  _commandCollection;
        
        private: System::Boolean _clearBeforeFill;
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        EmploeTableAdapter();
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
         property System::Data::OleDb::OleDbDataAdapter^  Adapter {
            System::Data::OleDb::OleDbDataAdapter^  get();
        }
        
        internal: [System::Diagnostics::DebuggerNonUserCodeAttribute]
         property System::Data::OleDb::OleDbConnection^  Connection {
            System::Data::OleDb::OleDbConnection^  get();
            System::Void set(System::Data::OleDb::OleDbConnection^  value);
        }
        
        protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
         property cli::array< System::Data::OleDb::OleDbCommand^  >^  CommandCollection {
            cli::array< System::Data::OleDb::OleDbCommand^  >^  get();
        }
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
         property System::Boolean ClearBeforeFill {
            System::Boolean get();
            System::Void set(System::Boolean value);
        }
        
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Void InitAdapter();
        
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Void InitConnection();
        
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Void InitCommandCollection();
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Fill, true)]
        virtual System::Int32 Fill(s3::BoreyDataSet::EmploeDataTable^  dataTable);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Select, true)]
        virtual s3::BoreyDataSet::EmploeDataTable^  GetData();
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        virtual System::Int32 Update(s3::BoreyDataSet::EmploeDataTable^  dataTable);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        virtual System::Int32 Update(s3::BoreyDataSet^  dataSet);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        virtual System::Int32 Update(System::Data::DataRow^  dataRow);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        virtual System::Int32 Update(cli::array< System::Data::DataRow^  >^  dataRows);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Delete, true)]
        virtual System::Int32 Delete(System::Int32 Original_EmploeId, System::String^  Original_Emploe);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Insert, true)]
        virtual System::Int32 Insert(System::String^  Emploe);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Update, true)]
        virtual System::Int32 Update(System::String^  Emploe, System::Int32 Original_EmploeId, System::String^  Original_Emploe);
    };
    
    [System::CodeDom::Compiler::GeneratedCodeAttribute(L"System.Data.Design.TypedDataSetGenerator", L"2.0.0.0"), 
    System::ComponentModel::DesignerCategoryAttribute(L"code"), 
    System::ComponentModel::ToolboxItem(true), 
    System::ComponentModel::DataObjectAttribute(true), 
    System::ComponentModel::DesignerAttribute(L"Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" 
L", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"), 
    System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
    public ref class OrdersTableAdapter : public System::ComponentModel::Component {
        
        private: System::Data::OleDb::OleDbDataAdapter^  _adapter;
        
        private: System::Data::OleDb::OleDbConnection^  _connection;
        
        private: cli::array< System::Data::OleDb::OleDbCommand^  >^  _commandCollection;
        
        private: System::Boolean _clearBeforeFill;
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        OrdersTableAdapter();
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
         property System::Data::OleDb::OleDbDataAdapter^  Adapter {
            System::Data::OleDb::OleDbDataAdapter^  get();
        }
        
        internal: [System::Diagnostics::DebuggerNonUserCodeAttribute]
         property System::Data::OleDb::OleDbConnection^  Connection {
            System::Data::OleDb::OleDbConnection^  get();
            System::Void set(System::Data::OleDb::OleDbConnection^  value);
        }
        
        protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
         property cli::array< System::Data::OleDb::OleDbCommand^  >^  CommandCollection {
            cli::array< System::Data::OleDb::OleDbCommand^  >^  get();
        }
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
         property System::Boolean ClearBeforeFill {
            System::Boolean get();
            System::Void set(System::Boolean value);
        }
        
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Void InitAdapter();
        
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Void InitConnection();
        
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Void InitCommandCollection();
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Fill, true)]
        virtual System::Int32 Fill(s3::BoreyDataSet::OrdersDataTable^  dataTable);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Select, true)]
        virtual s3::BoreyDataSet::OrdersDataTable^  GetData();
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        virtual System::Int32 Update(s3::BoreyDataSet::OrdersDataTable^  dataTable);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        virtual System::Int32 Update(s3::BoreyDataSet^  dataSet);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        virtual System::Int32 Update(System::Data::DataRow^  dataRow);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        virtual System::Int32 Update(cli::array< System::Data::DataRow^  >^  dataRows);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Delete, true)]
        virtual System::Int32 Delete(System::Int32 Original_OrdersId, System::Nullable<System::Int32 > Original_CustomerId, 
                    System::Nullable<System::Int32 > Original_EmploeId, System::Nullable<System::DateTime > Original_Date);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Insert, true)]
        virtual System::Int32 Insert(System::Nullable<System::Int32 > CustomerId, System::Nullable<System::Int32 > EmploeId, 
                    System::Nullable<System::DateTime > Date);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Update, true)]
        virtual System::Int32 Update(
                    System::Nullable<System::Int32 > CustomerId, 
                    System::Nullable<System::Int32 > EmploeId, 
                    System::Nullable<System::DateTime > Date, 
                    System::Int32 Original_OrdersId, 
                    System::Nullable<System::Int32 > Original_CustomerId, 
                    System::Nullable<System::Int32 > Original_EmploeId, 
                    System::Nullable<System::DateTime > Original_Date);
    };
    
    [System::CodeDom::Compiler::GeneratedCodeAttribute(L"System.Data.Design.TypedDataSetGenerator", L"2.0.0.0"), 
    System::ComponentModel::DesignerCategoryAttribute(L"code"), 
    System::ComponentModel::ToolboxItem(true), 
    System::ComponentModel::DataObjectAttribute(true), 
    System::ComponentModel::DesignerAttribute(L"Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" 
L", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"), 
    System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
    public ref class OrdersDetailsTableAdapter : public System::ComponentModel::Component {
        
        private: System::Data::OleDb::OleDbDataAdapter^  _adapter;
        
        private: System::Data::OleDb::OleDbConnection^  _connection;
        
        private: cli::array< System::Data::OleDb::OleDbCommand^  >^  _commandCollection;
        
        private: System::Boolean _clearBeforeFill;
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        OrdersDetailsTableAdapter();
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
         property System::Data::OleDb::OleDbDataAdapter^  Adapter {
            System::Data::OleDb::OleDbDataAdapter^  get();
        }
        
        internal: [System::Diagnostics::DebuggerNonUserCodeAttribute]
         property System::Data::OleDb::OleDbConnection^  Connection {
            System::Data::OleDb::OleDbConnection^  get();
            System::Void set(System::Data::OleDb::OleDbConnection^  value);
        }
        
        protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
         property cli::array< System::Data::OleDb::OleDbCommand^  >^  CommandCollection {
            cli::array< System::Data::OleDb::OleDbCommand^  >^  get();
        }
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
         property System::Boolean ClearBeforeFill {
            System::Boolean get();
            System::Void set(System::Boolean value);
        }
        
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Void InitAdapter();
        
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Void InitConnection();
        
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Void InitCommandCollection();
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Fill, true)]
        virtual System::Int32 Fill(s3::BoreyDataSet::OrdersDetailsDataTable^  dataTable);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Select, true)]
        virtual s3::BoreyDataSet::OrdersDetailsDataTable^  GetData();
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        virtual System::Int32 Update(s3::BoreyDataSet::OrdersDetailsDataTable^  dataTable);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        virtual System::Int32 Update(s3::BoreyDataSet^  dataSet);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        virtual System::Int32 Update(System::Data::DataRow^  dataRow);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        virtual System::Int32 Update(cli::array< System::Data::DataRow^  >^  dataRows);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Delete, true)]
        virtual System::Int32 Delete(System::Int32 Original_OrdersDetailsId, System::Nullable<System::Int32 > Original_ProductId, 
                    System::Nullable<System::Decimal > Original_Price, System::Nullable<System::Int32 > Original_Volume, System::Nullable<System::Int32 > Original_OrdersId);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Insert, true)]
        virtual System::Int32 Insert(System::Nullable<System::Int32 > ProductId, System::Nullable<System::Decimal > Price, 
                    System::Nullable<System::Int32 > Volume, System::Nullable<System::Int32 > OrdersId);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Update, true)]
        virtual System::Int32 Update(
                    System::Nullable<System::Int32 > ProductId, 
                    System::Nullable<System::Decimal > Price, 
                    System::Nullable<System::Int32 > Volume, 
                    System::Nullable<System::Int32 > OrdersId, 
                    System::Int32 Original_OrdersDetailsId, 
                    System::Nullable<System::Int32 > Original_ProductId, 
                    System::Nullable<System::Decimal > Original_Price, 
                    System::Nullable<System::Int32 > Original_Volume, 
                    System::Nullable<System::Int32 > Original_OrdersId);
    };
    
    [System::CodeDom::Compiler::GeneratedCodeAttribute(L"System.Data.Design.TypedDataSetGenerator", L"2.0.0.0"), 
    System::ComponentModel::DesignerCategoryAttribute(L"code"), 
    System::ComponentModel::ToolboxItem(true), 
    System::ComponentModel::DataObjectAttribute(true), 
    System::ComponentModel::DesignerAttribute(L"Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" 
L", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"), 
    System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
    public ref class ProductTableAdapter : public System::ComponentModel::Component {
        
        private: System::Data::OleDb::OleDbDataAdapter^  _adapter;
        
        private: System::Data::OleDb::OleDbConnection^  _connection;
        
        private: cli::array< System::Data::OleDb::OleDbCommand^  >^  _commandCollection;
        
        private: System::Boolean _clearBeforeFill;
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        ProductTableAdapter();
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
         property System::Data::OleDb::OleDbDataAdapter^  Adapter {
            System::Data::OleDb::OleDbDataAdapter^  get();
        }
        
        internal: [System::Diagnostics::DebuggerNonUserCodeAttribute]
         property System::Data::OleDb::OleDbConnection^  Connection {
            System::Data::OleDb::OleDbConnection^  get();
            System::Void set(System::Data::OleDb::OleDbConnection^  value);
        }
        
        protected: [System::Diagnostics::DebuggerNonUserCodeAttribute]
         property cli::array< System::Data::OleDb::OleDbCommand^  >^  CommandCollection {
            cli::array< System::Data::OleDb::OleDbCommand^  >^  get();
        }
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
         property System::Boolean ClearBeforeFill {
            System::Boolean get();
            System::Void set(System::Boolean value);
        }
        
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Void InitAdapter();
        
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Void InitConnection();
        
        private: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        System::Void InitCommandCollection();
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Fill, true)]
        virtual System::Int32 Fill(s3::BoreyDataSet::ProductDataTable^  dataTable);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Select, true)]
        virtual s3::BoreyDataSet::ProductDataTable^  GetData();
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        virtual System::Int32 Update(s3::BoreyDataSet::ProductDataTable^  dataTable);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        virtual System::Int32 Update(s3::BoreyDataSet^  dataSet);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        virtual System::Int32 Update(System::Data::DataRow^  dataRow);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        virtual System::Int32 Update(cli::array< System::Data::DataRow^  >^  dataRows);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Delete, true)]
        virtual System::Int32 Delete(System::Int32 Original_ProductId, System::String^  Original_ProductName);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Insert, true)]
        virtual System::Int32 Insert(System::String^  ProductName);
        
        public: [System::Diagnostics::DebuggerNonUserCodeAttribute]
        [System::ComponentModel::Design::HelpKeywordAttribute(L"vs.data.TableAdapter")]
        [System::ComponentModel::DataObjectMethodAttribute(System::ComponentModel::DataObjectMethodType::Update, true)]
        virtual System::Int32 Update(System::String^  ProductName, System::Int32 Original_ProductId, System::String^  Original_ProductName);
    };
    }
}
namespace s3 {
    namespace BoreyDataSetTableAdapters {
    
    
    inline CustomerTableAdapter::CustomerTableAdapter() {
        this->ClearBeforeFill = true;
    }
    
    inline System::Data::OleDb::OleDbDataAdapter^  CustomerTableAdapter::Adapter::get() {
        if (this->_adapter == nullptr) {
            this->InitAdapter();
        }
        return this->_adapter;
    }
    
    inline System::Data::OleDb::OleDbConnection^  CustomerTableAdapter::Connection::get() {
        if (this->_connection == nullptr) {
            this->InitConnection();
        }
        return this->_connection;
    }
    inline System::Void CustomerTableAdapter::Connection::set(System::Data::OleDb::OleDbConnection^  value) {
        this->_connection = __identifier(value);
        if (this->Adapter->InsertCommand != nullptr) {
            this->Adapter->InsertCommand->Connection = __identifier(value);
        }
        if (this->Adapter->DeleteCommand != nullptr) {
            this->Adapter->DeleteCommand->Connection = __identifier(value);
        }
        if (this->Adapter->UpdateCommand != nullptr) {
            this->Adapter->UpdateCommand->Connection = __identifier(value);
        }
        for (        System::Int32 i = 0; (i < this->CommandCollection->Length);         i = (i + 1)) {
            if (this->CommandCollection[i] != nullptr) {
                (cli::safe_cast<System::Data::OleDb::OleDbCommand^  >(this->CommandCollection[i]))->Connection = __identifier(value);
            }
        }
    }
    
    inline cli::array< System::Data::OleDb::OleDbCommand^  >^  CustomerTableAdapter::CommandCollection::get() {
        if (this->_commandCollection == nullptr) {
            this->InitCommandCollection();
        }
        return this->_commandCollection;
    }
    
    inline System::Boolean CustomerTableAdapter::ClearBeforeFill::get() {
        return this->_clearBeforeFill;
    }
    inline System::Void CustomerTableAdapter::ClearBeforeFill::set(System::Boolean value) {
        this->_clearBeforeFill = __identifier(value);
    }
    
    inline System::Void CustomerTableAdapter::InitAdapter() {
        this->_adapter = (gcnew System::Data::OleDb::OleDbDataAdapter());
        System::Data::Common::DataTableMapping^  tableMapping = (gcnew System::Data::Common::DataTableMapping());
        tableMapping->SourceTable = L"Table";
        tableMapping->DataSetTable = L"Customer";
        tableMapping->ColumnMappings->Add(L"CustomerId", L"CustomerId");
        tableMapping->ColumnMappings->Add(L"CustomerName", L"CustomerName");
        this->_adapter->TableMappings->Add(tableMapping);
        this->_adapter->DeleteCommand = (gcnew System::Data::OleDb::OleDbCommand());
        this->_adapter->DeleteCommand->Connection = this->Connection;
        this->_adapter->DeleteCommand->CommandText = L"DELETE FROM `Customer` WHERE ((`CustomerId` = \?) AND ((\? = 1 AND `CustomerName` I" 
L"S NULL) OR (`CustomerName` = \?)))";
        this->_adapter->DeleteCommand->CommandType = System::Data::CommandType::Text;
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_CustomerId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"CustomerId", 
                System::Data::DataRowVersion::Original, false, nullptr)));
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"IsNull_CustomerName", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"CustomerName", 
                System::Data::DataRowVersion::Original, true, nullptr)));
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_CustomerName", System::Data::OleDb::OleDbType::VarWChar, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"CustomerName", 
                System::Data::DataRowVersion::Original, false, nullptr)));
        this->_adapter->InsertCommand = (gcnew System::Data::OleDb::OleDbCommand());
        this->_adapter->InsertCommand->Connection = this->Connection;
        this->_adapter->InsertCommand->CommandText = L"INSERT INTO `Customer` (`CustomerName`) VALUES (\?)";
        this->_adapter->InsertCommand->CommandType = System::Data::CommandType::Text;
        this->_adapter->InsertCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"CustomerName", System::Data::OleDb::OleDbType::VarWChar, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"CustomerName", 
                System::Data::DataRowVersion::Current, false, nullptr)));
        this->_adapter->UpdateCommand = (gcnew System::Data::OleDb::OleDbCommand());
        this->_adapter->UpdateCommand->Connection = this->Connection;
        this->_adapter->UpdateCommand->CommandText = L"UPDATE `Customer` SET `CustomerName` = \? WHERE ((`CustomerId` = \?) AND ((\? = 1 AN" 
L"D `CustomerName` IS NULL) OR (`CustomerName` = \?)))";
        this->_adapter->UpdateCommand->CommandType = System::Data::CommandType::Text;
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"CustomerName", System::Data::OleDb::OleDbType::VarWChar, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"CustomerName", 
                System::Data::DataRowVersion::Current, false, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_CustomerId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"CustomerId", 
                System::Data::DataRowVersion::Original, false, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"IsNull_CustomerName", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"CustomerName", 
                System::Data::DataRowVersion::Original, true, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_CustomerName", System::Data::OleDb::OleDbType::VarWChar, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"CustomerName", 
                System::Data::DataRowVersion::Original, false, nullptr)));
    }
    
    inline System::Void CustomerTableAdapter::InitConnection() {
        this->_connection = (gcnew System::Data::OleDb::OleDbConnection());
        this->_connection->ConnectionString = L"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Work\\Borey.mdb";
    }
    
    inline System::Void CustomerTableAdapter::InitCommandCollection() {
        this->_commandCollection = gcnew cli::array< System::Data::OleDb::OleDbCommand^  >(1);
        this->_commandCollection[0] = (gcnew System::Data::OleDb::OleDbCommand());
        this->_commandCollection[0]->Connection = this->Connection;
        this->_commandCollection[0]->CommandText = L"SELECT CustomerId, CustomerName FROM Customer";
        this->_commandCollection[0]->CommandType = System::Data::CommandType::Text;
    }
    
    inline System::Int32 CustomerTableAdapter::Fill(s3::BoreyDataSet::CustomerDataTable^  dataTable) {
        this->Adapter->SelectCommand = this->CommandCollection[0];
        if (this->ClearBeforeFill == true) {
            dataTable->Clear();
        }
        System::Int32 returnValue = this->Adapter->Fill(dataTable);
        return returnValue;
    }
    
    inline s3::BoreyDataSet::CustomerDataTable^  CustomerTableAdapter::GetData() {
        this->Adapter->SelectCommand = this->CommandCollection[0];
        s3::BoreyDataSet::CustomerDataTable^  dataTable = (gcnew s3::BoreyDataSet::CustomerDataTable());
        this->Adapter->Fill(dataTable);
        return dataTable;
    }
    
    inline System::Int32 CustomerTableAdapter::Update(s3::BoreyDataSet::CustomerDataTable^  dataTable) {
        return this->Adapter->Update(dataTable);
    }
    
    inline System::Int32 CustomerTableAdapter::Update(s3::BoreyDataSet^  dataSet) {
        return this->Adapter->Update(dataSet, L"Customer");
    }
    
    inline System::Int32 CustomerTableAdapter::Update(System::Data::DataRow^  dataRow) {
        return this->Adapter->Update(gcnew cli::array< System::Data::DataRow^  >(1) {dataRow});
    }
    
    inline System::Int32 CustomerTableAdapter::Update(cli::array< System::Data::DataRow^  >^  dataRows) {
        return this->Adapter->Update(dataRows);
    }
    
    inline System::Int32 CustomerTableAdapter::Delete(System::Int32 Original_CustomerId, System::String^  Original_CustomerName) {
        this->Adapter->DeleteCommand->Parameters[0]->Value = static_cast<System::Int32>(Original_CustomerId);
        if (Original_CustomerName == nullptr) {
            this->Adapter->DeleteCommand->Parameters[1]->Value = cli::safe_cast<System::Object^>(1);
            this->Adapter->DeleteCommand->Parameters[2]->Value = System::DBNull::Value;
        }
        else {
            this->Adapter->DeleteCommand->Parameters[1]->Value = cli::safe_cast<System::Object^>(0);
            this->Adapter->DeleteCommand->Parameters[2]->Value = (cli::safe_cast<System::String^  >(Original_CustomerName));
        }
        System::Data::ConnectionState previousConnectionState = this->Adapter->DeleteCommand->Connection->State;
        if ((this->Adapter->DeleteCommand->Connection->State & System::Data::ConnectionState::Open) 
                    != System::Data::ConnectionState::Open) {
            this->Adapter->DeleteCommand->Connection->Open();
        }
        try {
            System::Int32 returnValue = this->Adapter->DeleteCommand->ExecuteNonQuery();
            return returnValue;
        }
        finally {
            if (previousConnectionState == System::Data::ConnectionState::Closed) {
                this->Adapter->DeleteCommand->Connection->Close();
            }
        }
    }
    
    inline System::Int32 CustomerTableAdapter::Insert(System::String^  CustomerName) {
        if (CustomerName == nullptr) {
            this->Adapter->InsertCommand->Parameters[0]->Value = System::DBNull::Value;
        }
        else {
            this->Adapter->InsertCommand->Parameters[0]->Value = (cli::safe_cast<System::String^  >(CustomerName));
        }
        System::Data::ConnectionState previousConnectionState = this->Adapter->InsertCommand->Connection->State;
        if ((this->Adapter->InsertCommand->Connection->State & System::Data::ConnectionState::Open) 
                    != System::Data::ConnectionState::Open) {
            this->Adapter->InsertCommand->Connection->Open();
        }
        try {
            System::Int32 returnValue = this->Adapter->InsertCommand->ExecuteNonQuery();
            return returnValue;
        }
        finally {
            if (previousConnectionState == System::Data::ConnectionState::Closed) {
                this->Adapter->InsertCommand->Connection->Close();
            }
        }
    }
    
    inline System::Int32 CustomerTableAdapter::Update(System::String^  CustomerName, System::Int32 Original_CustomerId, System::String^  Original_CustomerName) {
        if (CustomerName == nullptr) {
            this->Adapter->UpdateCommand->Parameters[0]->Value = System::DBNull::Value;
        }
        else {
            this->Adapter->UpdateCommand->Parameters[0]->Value = (cli::safe_cast<System::String^  >(CustomerName));
        }
        this->Adapter->UpdateCommand->Parameters[1]->Value = static_cast<System::Int32>(Original_CustomerId);
        if (Original_CustomerName == nullptr) {
            this->Adapter->UpdateCommand->Parameters[2]->Value = cli::safe_cast<System::Object^>(1);
            this->Adapter->UpdateCommand->Parameters[3]->Value = System::DBNull::Value;
        }
        else {
            this->Adapter->UpdateCommand->Parameters[2]->Value = cli::safe_cast<System::Object^>(0);
            this->Adapter->UpdateCommand->Parameters[3]->Value = (cli::safe_cast<System::String^  >(Original_CustomerName));
        }
        System::Data::ConnectionState previousConnectionState = this->Adapter->UpdateCommand->Connection->State;
        if ((this->Adapter->UpdateCommand->Connection->State & System::Data::ConnectionState::Open) 
                    != System::Data::ConnectionState::Open) {
            this->Adapter->UpdateCommand->Connection->Open();
        }
        try {
            System::Int32 returnValue = this->Adapter->UpdateCommand->ExecuteNonQuery();
            return returnValue;
        }
        finally {
            if (previousConnectionState == System::Data::ConnectionState::Closed) {
                this->Adapter->UpdateCommand->Connection->Close();
            }
        }
    }
    
    
    inline EmploeTableAdapter::EmploeTableAdapter() {
        this->ClearBeforeFill = true;
    }
    
    inline System::Data::OleDb::OleDbDataAdapter^  EmploeTableAdapter::Adapter::get() {
        if (this->_adapter == nullptr) {
            this->InitAdapter();
        }
        return this->_adapter;
    }
    
    inline System::Data::OleDb::OleDbConnection^  EmploeTableAdapter::Connection::get() {
        if (this->_connection == nullptr) {
            this->InitConnection();
        }
        return this->_connection;
    }
    inline System::Void EmploeTableAdapter::Connection::set(System::Data::OleDb::OleDbConnection^  value) {
        this->_connection = __identifier(value);
        if (this->Adapter->InsertCommand != nullptr) {
            this->Adapter->InsertCommand->Connection = __identifier(value);
        }
        if (this->Adapter->DeleteCommand != nullptr) {
            this->Adapter->DeleteCommand->Connection = __identifier(value);
        }
        if (this->Adapter->UpdateCommand != nullptr) {
            this->Adapter->UpdateCommand->Connection = __identifier(value);
        }
        for (        System::Int32 i = 0; (i < this->CommandCollection->Length);         i = (i + 1)) {
            if (this->CommandCollection[i] != nullptr) {
                (cli::safe_cast<System::Data::OleDb::OleDbCommand^  >(this->CommandCollection[i]))->Connection = __identifier(value);
            }
        }
    }
    
    inline cli::array< System::Data::OleDb::OleDbCommand^  >^  EmploeTableAdapter::CommandCollection::get() {
        if (this->_commandCollection == nullptr) {
            this->InitCommandCollection();
        }
        return this->_commandCollection;
    }
    
    inline System::Boolean EmploeTableAdapter::ClearBeforeFill::get() {
        return this->_clearBeforeFill;
    }
    inline System::Void EmploeTableAdapter::ClearBeforeFill::set(System::Boolean value) {
        this->_clearBeforeFill = __identifier(value);
    }
    
    inline System::Void EmploeTableAdapter::InitAdapter() {
        this->_adapter = (gcnew System::Data::OleDb::OleDbDataAdapter());
        System::Data::Common::DataTableMapping^  tableMapping = (gcnew System::Data::Common::DataTableMapping());
        tableMapping->SourceTable = L"Table";
        tableMapping->DataSetTable = L"Emploe";
        tableMapping->ColumnMappings->Add(L"EmploeId", L"EmploeId");
        tableMapping->ColumnMappings->Add(L"Emploe", L"Emploe");
        this->_adapter->TableMappings->Add(tableMapping);
        this->_adapter->DeleteCommand = (gcnew System::Data::OleDb::OleDbCommand());
        this->_adapter->DeleteCommand->Connection = this->Connection;
        this->_adapter->DeleteCommand->CommandText = L"DELETE FROM `Emploe` WHERE ((`EmploeId` = \?) AND ((\? = 1 AND `Emploe` IS NULL) OR" 
L" (`Emploe` = \?)))";
        this->_adapter->DeleteCommand->CommandType = System::Data::CommandType::Text;
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_EmploeId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"EmploeId", 
                System::Data::DataRowVersion::Original, false, nullptr)));
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"IsNull_Emploe", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Emploe", System::Data::DataRowVersion::Original, 
                true, nullptr)));
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_Emploe", System::Data::OleDb::OleDbType::VarWChar, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Emploe", System::Data::DataRowVersion::Original, 
                false, nullptr)));
        this->_adapter->InsertCommand = (gcnew System::Data::OleDb::OleDbCommand());
        this->_adapter->InsertCommand->Connection = this->Connection;
        this->_adapter->InsertCommand->CommandText = L"INSERT INTO `Emploe` (`Emploe`) VALUES (\?)";
        this->_adapter->InsertCommand->CommandType = System::Data::CommandType::Text;
        this->_adapter->InsertCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Emploe", System::Data::OleDb::OleDbType::VarWChar, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Emploe", System::Data::DataRowVersion::Current, 
                false, nullptr)));
        this->_adapter->UpdateCommand = (gcnew System::Data::OleDb::OleDbCommand());
        this->_adapter->UpdateCommand->Connection = this->Connection;
        this->_adapter->UpdateCommand->CommandText = L"UPDATE `Emploe` SET `Emploe` = \? WHERE ((`EmploeId` = \?) AND ((\? = 1 AND `Emploe`" 
L" IS NULL) OR (`Emploe` = \?)))";
        this->_adapter->UpdateCommand->CommandType = System::Data::CommandType::Text;
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Emploe", System::Data::OleDb::OleDbType::VarWChar, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Emploe", System::Data::DataRowVersion::Current, 
                false, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_EmploeId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"EmploeId", 
                System::Data::DataRowVersion::Original, false, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"IsNull_Emploe", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Emploe", System::Data::DataRowVersion::Original, 
                true, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_Emploe", System::Data::OleDb::OleDbType::VarWChar, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Emploe", System::Data::DataRowVersion::Original, 
                false, nullptr)));
    }
    
    inline System::Void EmploeTableAdapter::InitConnection() {
        this->_connection = (gcnew System::Data::OleDb::OleDbConnection());
        this->_connection->ConnectionString = L"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Work\\Borey.mdb";
    }
    
    inline System::Void EmploeTableAdapter::InitCommandCollection() {
        this->_commandCollection = gcnew cli::array< System::Data::OleDb::OleDbCommand^  >(1);
        this->_commandCollection[0] = (gcnew System::Data::OleDb::OleDbCommand());
        this->_commandCollection[0]->Connection = this->Connection;
        this->_commandCollection[0]->CommandText = L"SELECT EmploeId, Emploe FROM Emploe";
        this->_commandCollection[0]->CommandType = System::Data::CommandType::Text;
    }
    
    inline System::Int32 EmploeTableAdapter::Fill(s3::BoreyDataSet::EmploeDataTable^  dataTable) {
        this->Adapter->SelectCommand = this->CommandCollection[0];
        if (this->ClearBeforeFill == true) {
            dataTable->Clear();
        }
        System::Int32 returnValue = this->Adapter->Fill(dataTable);
        return returnValue;
    }
    
    inline s3::BoreyDataSet::EmploeDataTable^  EmploeTableAdapter::GetData() {
        this->Adapter->SelectCommand = this->CommandCollection[0];
        s3::BoreyDataSet::EmploeDataTable^  dataTable = (gcnew s3::BoreyDataSet::EmploeDataTable());
        this->Adapter->Fill(dataTable);
        return dataTable;
    }
    
    inline System::Int32 EmploeTableAdapter::Update(s3::BoreyDataSet::EmploeDataTable^  dataTable) {
        return this->Adapter->Update(dataTable);
    }
    
    inline System::Int32 EmploeTableAdapter::Update(s3::BoreyDataSet^  dataSet) {
        return this->Adapter->Update(dataSet, L"Emploe");
    }
    
    inline System::Int32 EmploeTableAdapter::Update(System::Data::DataRow^  dataRow) {
        return this->Adapter->Update(gcnew cli::array< System::Data::DataRow^  >(1) {dataRow});
    }
    
    inline System::Int32 EmploeTableAdapter::Update(cli::array< System::Data::DataRow^  >^  dataRows) {
        return this->Adapter->Update(dataRows);
    }
    
    inline System::Int32 EmploeTableAdapter::Delete(System::Int32 Original_EmploeId, System::String^  Original_Emploe) {
        this->Adapter->DeleteCommand->Parameters[0]->Value = static_cast<System::Int32>(Original_EmploeId);
        if (Original_Emploe == nullptr) {
            this->Adapter->DeleteCommand->Parameters[1]->Value = cli::safe_cast<System::Object^>(1);
            this->Adapter->DeleteCommand->Parameters[2]->Value = System::DBNull::Value;
        }
        else {
            this->Adapter->DeleteCommand->Parameters[1]->Value = cli::safe_cast<System::Object^>(0);
            this->Adapter->DeleteCommand->Parameters[2]->Value = (cli::safe_cast<System::String^  >(Original_Emploe));
        }
        System::Data::ConnectionState previousConnectionState = this->Adapter->DeleteCommand->Connection->State;
        if ((this->Adapter->DeleteCommand->Connection->State & System::Data::ConnectionState::Open) 
                    != System::Data::ConnectionState::Open) {
            this->Adapter->DeleteCommand->Connection->Open();
        }
        try {
            System::Int32 returnValue = this->Adapter->DeleteCommand->ExecuteNonQuery();
            return returnValue;
        }
        finally {
            if (previousConnectionState == System::Data::ConnectionState::Closed) {
                this->Adapter->DeleteCommand->Connection->Close();
            }
        }
    }
    
    inline System::Int32 EmploeTableAdapter::Insert(System::String^  Emploe) {
        if (Emploe == nullptr) {
            this->Adapter->InsertCommand->Parameters[0]->Value = System::DBNull::Value;
        }
        else {
            this->Adapter->InsertCommand->Parameters[0]->Value = (cli::safe_cast<System::String^  >(Emploe));
        }
        System::Data::ConnectionState previousConnectionState = this->Adapter->InsertCommand->Connection->State;
        if ((this->Adapter->InsertCommand->Connection->State & System::Data::ConnectionState::Open) 
                    != System::Data::ConnectionState::Open) {
            this->Adapter->InsertCommand->Connection->Open();
        }
        try {
            System::Int32 returnValue = this->Adapter->InsertCommand->ExecuteNonQuery();
            return returnValue;
        }
        finally {
            if (previousConnectionState == System::Data::ConnectionState::Closed) {
                this->Adapter->InsertCommand->Connection->Close();
            }
        }
    }
    
    inline System::Int32 EmploeTableAdapter::Update(System::String^  Emploe, System::Int32 Original_EmploeId, System::String^  Original_Emploe) {
        if (Emploe == nullptr) {
            this->Adapter->UpdateCommand->Parameters[0]->Value = System::DBNull::Value;
        }
        else {
            this->Adapter->UpdateCommand->Parameters[0]->Value = (cli::safe_cast<System::String^  >(Emploe));
        }
        this->Adapter->UpdateCommand->Parameters[1]->Value = static_cast<System::Int32>(Original_EmploeId);
        if (Original_Emploe == nullptr) {
            this->Adapter->UpdateCommand->Parameters[2]->Value = cli::safe_cast<System::Object^>(1);
            this->Adapter->UpdateCommand->Parameters[3]->Value = System::DBNull::Value;
        }
        else {
            this->Adapter->UpdateCommand->Parameters[2]->Value = cli::safe_cast<System::Object^>(0);
            this->Adapter->UpdateCommand->Parameters[3]->Value = (cli::safe_cast<System::String^  >(Original_Emploe));
        }
        System::Data::ConnectionState previousConnectionState = this->Adapter->UpdateCommand->Connection->State;
        if ((this->Adapter->UpdateCommand->Connection->State & System::Data::ConnectionState::Open) 
                    != System::Data::ConnectionState::Open) {
            this->Adapter->UpdateCommand->Connection->Open();
        }
        try {
            System::Int32 returnValue = this->Adapter->UpdateCommand->ExecuteNonQuery();
            return returnValue;
        }
        finally {
            if (previousConnectionState == System::Data::ConnectionState::Closed) {
                this->Adapter->UpdateCommand->Connection->Close();
            }
        }
    }
    
    
    inline OrdersTableAdapter::OrdersTableAdapter() {
        this->ClearBeforeFill = true;
    }
    
    inline System::Data::OleDb::OleDbDataAdapter^  OrdersTableAdapter::Adapter::get() {
        if (this->_adapter == nullptr) {
            this->InitAdapter();
        }
        return this->_adapter;
    }
    
    inline System::Data::OleDb::OleDbConnection^  OrdersTableAdapter::Connection::get() {
        if (this->_connection == nullptr) {
            this->InitConnection();
        }
        return this->_connection;
    }
    inline System::Void OrdersTableAdapter::Connection::set(System::Data::OleDb::OleDbConnection^  value) {
        this->_connection = __identifier(value);
        if (this->Adapter->InsertCommand != nullptr) {
            this->Adapter->InsertCommand->Connection = __identifier(value);
        }
        if (this->Adapter->DeleteCommand != nullptr) {
            this->Adapter->DeleteCommand->Connection = __identifier(value);
        }
        if (this->Adapter->UpdateCommand != nullptr) {
            this->Adapter->UpdateCommand->Connection = __identifier(value);
        }
        for (        System::Int32 i = 0; (i < this->CommandCollection->Length);         i = (i + 1)) {
            if (this->CommandCollection[i] != nullptr) {
                (cli::safe_cast<System::Data::OleDb::OleDbCommand^  >(this->CommandCollection[i]))->Connection = __identifier(value);
            }
        }
    }
    
    inline cli::array< System::Data::OleDb::OleDbCommand^  >^  OrdersTableAdapter::CommandCollection::get() {
        if (this->_commandCollection == nullptr) {
            this->InitCommandCollection();
        }
        return this->_commandCollection;
    }
    
    inline System::Boolean OrdersTableAdapter::ClearBeforeFill::get() {
        return this->_clearBeforeFill;
    }
    inline System::Void OrdersTableAdapter::ClearBeforeFill::set(System::Boolean value) {
        this->_clearBeforeFill = __identifier(value);
    }
    
    inline System::Void OrdersTableAdapter::InitAdapter() {
        this->_adapter = (gcnew System::Data::OleDb::OleDbDataAdapter());
        System::Data::Common::DataTableMapping^  tableMapping = (gcnew System::Data::Common::DataTableMapping());
        tableMapping->SourceTable = L"Table";
        tableMapping->DataSetTable = L"Orders";
        tableMapping->ColumnMappings->Add(L"OrdersId", L"OrdersId");
        tableMapping->ColumnMappings->Add(L"CustomerId", L"CustomerId");
        tableMapping->ColumnMappings->Add(L"EmploeId", L"EmploeId");
        tableMapping->ColumnMappings->Add(L"Date", L"Date");
        this->_adapter->TableMappings->Add(tableMapping);
        this->_adapter->DeleteCommand = (gcnew System::Data::OleDb::OleDbCommand());
        this->_adapter->DeleteCommand->Connection = this->Connection;
        this->_adapter->DeleteCommand->CommandText = L"DELETE FROM `Orders` WHERE ((`OrdersId` = \?) AND ((\? = 1 AND `CustomerId` IS NULL" 
L") OR (`CustomerId` = \?)) AND ((\? = 1 AND `EmploeId` IS NULL) OR (`EmploeId` = \?)" 
L") AND ((\? = 1 AND `Date` IS NULL) OR (`Date` = \?)))";
        this->_adapter->DeleteCommand->CommandType = System::Data::CommandType::Text;
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_OrdersId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"OrdersId", 
                System::Data::DataRowVersion::Original, false, nullptr)));
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"IsNull_CustomerId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"CustomerId", 
                System::Data::DataRowVersion::Original, true, nullptr)));
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_CustomerId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"CustomerId", 
                System::Data::DataRowVersion::Original, false, nullptr)));
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"IsNull_EmploeId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"EmploeId", 
                System::Data::DataRowVersion::Original, true, nullptr)));
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_EmploeId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"EmploeId", 
                System::Data::DataRowVersion::Original, false, nullptr)));
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"IsNull_Date", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Date", System::Data::DataRowVersion::Original, 
                true, nullptr)));
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_Date", System::Data::OleDb::OleDbType::Date, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Date", System::Data::DataRowVersion::Original, 
                false, nullptr)));
        this->_adapter->InsertCommand = (gcnew System::Data::OleDb::OleDbCommand());
        this->_adapter->InsertCommand->Connection = this->Connection;
        this->_adapter->InsertCommand->CommandText = L"INSERT INTO `Orders` (`CustomerId`, `EmploeId`, `Date`) VALUES (\?, \?, \?)";
        this->_adapter->InsertCommand->CommandType = System::Data::CommandType::Text;
        this->_adapter->InsertCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"CustomerId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"CustomerId", 
                System::Data::DataRowVersion::Current, false, nullptr)));
        this->_adapter->InsertCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"EmploeId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"EmploeId", 
                System::Data::DataRowVersion::Current, false, nullptr)));
        this->_adapter->InsertCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Date", System::Data::OleDb::OleDbType::Date, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Date", System::Data::DataRowVersion::Current, 
                false, nullptr)));
        this->_adapter->UpdateCommand = (gcnew System::Data::OleDb::OleDbCommand());
        this->_adapter->UpdateCommand->Connection = this->Connection;
        this->_adapter->UpdateCommand->CommandText = L"UPDATE `Orders` SET `CustomerId` = \?, `EmploeId` = \?, `Date` = \? WHERE ((`OrdersI" 
L"d` = \?) AND ((\? = 1 AND `CustomerId` IS NULL) OR (`CustomerId` = \?)) AND ((\? = 1" 
L" AND `EmploeId` IS NULL) OR (`EmploeId` = \?)) AND ((\? = 1 AND `Date` IS NULL) OR" 
L" (`Date` = \?)))";
        this->_adapter->UpdateCommand->CommandType = System::Data::CommandType::Text;
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"CustomerId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"CustomerId", 
                System::Data::DataRowVersion::Current, false, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"EmploeId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"EmploeId", 
                System::Data::DataRowVersion::Current, false, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Date", System::Data::OleDb::OleDbType::Date, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Date", System::Data::DataRowVersion::Current, 
                false, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_OrdersId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"OrdersId", 
                System::Data::DataRowVersion::Original, false, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"IsNull_CustomerId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"CustomerId", 
                System::Data::DataRowVersion::Original, true, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_CustomerId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"CustomerId", 
                System::Data::DataRowVersion::Original, false, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"IsNull_EmploeId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"EmploeId", 
                System::Data::DataRowVersion::Original, true, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_EmploeId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"EmploeId", 
                System::Data::DataRowVersion::Original, false, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"IsNull_Date", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Date", System::Data::DataRowVersion::Original, 
                true, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_Date", System::Data::OleDb::OleDbType::Date, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Date", System::Data::DataRowVersion::Original, 
                false, nullptr)));
    }
    
    inline System::Void OrdersTableAdapter::InitConnection() {
        this->_connection = (gcnew System::Data::OleDb::OleDbConnection());
        this->_connection->ConnectionString = L"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Work\\Borey.mdb";
    }
    
    inline System::Void OrdersTableAdapter::InitCommandCollection() {
        this->_commandCollection = gcnew cli::array< System::Data::OleDb::OleDbCommand^  >(1);
        this->_commandCollection[0] = (gcnew System::Data::OleDb::OleDbCommand());
        this->_commandCollection[0]->Connection = this->Connection;
        this->_commandCollection[0]->CommandText = L"SELECT OrdersId, CustomerId, EmploeId, [Date] FROM Orders";
        this->_commandCollection[0]->CommandType = System::Data::CommandType::Text;
    }
    
    inline System::Int32 OrdersTableAdapter::Fill(s3::BoreyDataSet::OrdersDataTable^  dataTable) {
        this->Adapter->SelectCommand = this->CommandCollection[0];
        if (this->ClearBeforeFill == true) {
            dataTable->Clear();
        }
        System::Int32 returnValue = this->Adapter->Fill(dataTable);
        return returnValue;
    }
    
    inline s3::BoreyDataSet::OrdersDataTable^  OrdersTableAdapter::GetData() {
        this->Adapter->SelectCommand = this->CommandCollection[0];
        s3::BoreyDataSet::OrdersDataTable^  dataTable = (gcnew s3::BoreyDataSet::OrdersDataTable());
        this->Adapter->Fill(dataTable);
        return dataTable;
    }
    
    inline System::Int32 OrdersTableAdapter::Update(s3::BoreyDataSet::OrdersDataTable^  dataTable) {
        return this->Adapter->Update(dataTable);
    }
    
    inline System::Int32 OrdersTableAdapter::Update(s3::BoreyDataSet^  dataSet) {
        return this->Adapter->Update(dataSet, L"Orders");
    }
    
    inline System::Int32 OrdersTableAdapter::Update(System::Data::DataRow^  dataRow) {
        return this->Adapter->Update(gcnew cli::array< System::Data::DataRow^  >(1) {dataRow});
    }
    
    inline System::Int32 OrdersTableAdapter::Update(cli::array< System::Data::DataRow^  >^  dataRows) {
        return this->Adapter->Update(dataRows);
    }
    
    inline System::Int32 OrdersTableAdapter::Delete(System::Int32 Original_OrdersId, System::Nullable<System::Int32 > Original_CustomerId, 
                System::Nullable<System::Int32 > Original_EmploeId, System::Nullable<System::DateTime > Original_Date) {
        this->Adapter->DeleteCommand->Parameters[0]->Value = static_cast<System::Int32>(Original_OrdersId);
        if (Original_CustomerId.HasValue == true) {
            this->Adapter->DeleteCommand->Parameters[1]->Value = cli::safe_cast<System::Object^>(0);
            this->Adapter->DeleteCommand->Parameters[2]->Value = static_cast<System::Int32>(Original_CustomerId.Value);
        }
        else {
            this->Adapter->DeleteCommand->Parameters[1]->Value = cli::safe_cast<System::Object^>(1);
            this->Adapter->DeleteCommand->Parameters[2]->Value = System::DBNull::Value;
        }
        if (Original_EmploeId.HasValue == true) {
            this->Adapter->DeleteCommand->Parameters[3]->Value = cli::safe_cast<System::Object^>(0);
            this->Adapter->DeleteCommand->Parameters[4]->Value = static_cast<System::Int32>(Original_EmploeId.Value);
        }
        else {
            this->Adapter->DeleteCommand->Parameters[3]->Value = cli::safe_cast<System::Object^>(1);
            this->Adapter->DeleteCommand->Parameters[4]->Value = System::DBNull::Value;
        }
        if (Original_Date.HasValue == true) {
            this->Adapter->DeleteCommand->Parameters[5]->Value = cli::safe_cast<System::Object^>(0);
            this->Adapter->DeleteCommand->Parameters[6]->Value = static_cast<System::DateTime>(Original_Date.Value);
        }
        else {
            this->Adapter->DeleteCommand->Parameters[5]->Value = cli::safe_cast<System::Object^>(1);
            this->Adapter->DeleteCommand->Parameters[6]->Value = System::DBNull::Value;
        }
        System::Data::ConnectionState previousConnectionState = this->Adapter->DeleteCommand->Connection->State;
        if ((this->Adapter->DeleteCommand->Connection->State & System::Data::ConnectionState::Open) 
                    != System::Data::ConnectionState::Open) {
            this->Adapter->DeleteCommand->Connection->Open();
        }
        try {
            System::Int32 returnValue = this->Adapter->DeleteCommand->ExecuteNonQuery();
            return returnValue;
        }
        finally {
            if (previousConnectionState == System::Data::ConnectionState::Closed) {
                this->Adapter->DeleteCommand->Connection->Close();
            }
        }
    }
    
    inline System::Int32 OrdersTableAdapter::Insert(System::Nullable<System::Int32 > CustomerId, System::Nullable<System::Int32 > EmploeId, 
                System::Nullable<System::DateTime > Date) {
        if (CustomerId.HasValue == true) {
            this->Adapter->InsertCommand->Parameters[0]->Value = static_cast<System::Int32>(CustomerId.Value);
        }
        else {
            this->Adapter->InsertCommand->Parameters[0]->Value = System::DBNull::Value;
        }
        if (EmploeId.HasValue == true) {
            this->Adapter->InsertCommand->Parameters[1]->Value = static_cast<System::Int32>(EmploeId.Value);
        }
        else {
            this->Adapter->InsertCommand->Parameters[1]->Value = System::DBNull::Value;
        }
        if (Date.HasValue == true) {
            this->Adapter->InsertCommand->Parameters[2]->Value = static_cast<System::DateTime>(Date.Value);
        }
        else {
            this->Adapter->InsertCommand->Parameters[2]->Value = System::DBNull::Value;
        }
        System::Data::ConnectionState previousConnectionState = this->Adapter->InsertCommand->Connection->State;
        if ((this->Adapter->InsertCommand->Connection->State & System::Data::ConnectionState::Open) 
                    != System::Data::ConnectionState::Open) {
            this->Adapter->InsertCommand->Connection->Open();
        }
        try {
            System::Int32 returnValue = this->Adapter->InsertCommand->ExecuteNonQuery();
            return returnValue;
        }
        finally {
            if (previousConnectionState == System::Data::ConnectionState::Closed) {
                this->Adapter->InsertCommand->Connection->Close();
            }
        }
    }
    
    inline System::Int32 OrdersTableAdapter::Update(
                System::Nullable<System::Int32 > CustomerId, 
                System::Nullable<System::Int32 > EmploeId, 
                System::Nullable<System::DateTime > Date, 
                System::Int32 Original_OrdersId, 
                System::Nullable<System::Int32 > Original_CustomerId, 
                System::Nullable<System::Int32 > Original_EmploeId, 
                System::Nullable<System::DateTime > Original_Date) {
        if (CustomerId.HasValue == true) {
            this->Adapter->UpdateCommand->Parameters[0]->Value = static_cast<System::Int32>(CustomerId.Value);
        }
        else {
            this->Adapter->UpdateCommand->Parameters[0]->Value = System::DBNull::Value;
        }
        if (EmploeId.HasValue == true) {
            this->Adapter->UpdateCommand->Parameters[1]->Value = static_cast<System::Int32>(EmploeId.Value);
        }
        else {
            this->Adapter->UpdateCommand->Parameters[1]->Value = System::DBNull::Value;
        }
        if (Date.HasValue == true) {
            this->Adapter->UpdateCommand->Parameters[2]->Value = static_cast<System::DateTime>(Date.Value);
        }
        else {
            this->Adapter->UpdateCommand->Parameters[2]->Value = System::DBNull::Value;
        }
        this->Adapter->UpdateCommand->Parameters[3]->Value = static_cast<System::Int32>(Original_OrdersId);
        if (Original_CustomerId.HasValue == true) {
            this->Adapter->UpdateCommand->Parameters[4]->Value = cli::safe_cast<System::Object^>(0);
            this->Adapter->UpdateCommand->Parameters[5]->Value = static_cast<System::Int32>(Original_CustomerId.Value);
        }
        else {
            this->Adapter->UpdateCommand->Parameters[4]->Value = cli::safe_cast<System::Object^>(1);
            this->Adapter->UpdateCommand->Parameters[5]->Value = System::DBNull::Value;
        }
        if (Original_EmploeId.HasValue == true) {
            this->Adapter->UpdateCommand->Parameters[6]->Value = cli::safe_cast<System::Object^>(0);
            this->Adapter->UpdateCommand->Parameters[7]->Value = static_cast<System::Int32>(Original_EmploeId.Value);
        }
        else {
            this->Adapter->UpdateCommand->Parameters[6]->Value = cli::safe_cast<System::Object^>(1);
            this->Adapter->UpdateCommand->Parameters[7]->Value = System::DBNull::Value;
        }
        if (Original_Date.HasValue == true) {
            this->Adapter->UpdateCommand->Parameters[8]->Value = cli::safe_cast<System::Object^>(0);
            this->Adapter->UpdateCommand->Parameters[9]->Value = static_cast<System::DateTime>(Original_Date.Value);
        }
        else {
            this->Adapter->UpdateCommand->Parameters[8]->Value = cli::safe_cast<System::Object^>(1);
            this->Adapter->UpdateCommand->Parameters[9]->Value = System::DBNull::Value;
        }
        System::Data::ConnectionState previousConnectionState = this->Adapter->UpdateCommand->Connection->State;
        if ((this->Adapter->UpdateCommand->Connection->State & System::Data::ConnectionState::Open) 
                    != System::Data::ConnectionState::Open) {
            this->Adapter->UpdateCommand->Connection->Open();
        }
        try {
            System::Int32 returnValue = this->Adapter->UpdateCommand->ExecuteNonQuery();
            return returnValue;
        }
        finally {
            if (previousConnectionState == System::Data::ConnectionState::Closed) {
                this->Adapter->UpdateCommand->Connection->Close();
            }
        }
    }
    
    
    inline OrdersDetailsTableAdapter::OrdersDetailsTableAdapter() {
        this->ClearBeforeFill = true;
    }
    
    inline System::Data::OleDb::OleDbDataAdapter^  OrdersDetailsTableAdapter::Adapter::get() {
        if (this->_adapter == nullptr) {
            this->InitAdapter();
        }
        return this->_adapter;
    }
    
    inline System::Data::OleDb::OleDbConnection^  OrdersDetailsTableAdapter::Connection::get() {
        if (this->_connection == nullptr) {
            this->InitConnection();
        }
        return this->_connection;
    }
    inline System::Void OrdersDetailsTableAdapter::Connection::set(System::Data::OleDb::OleDbConnection^  value) {
        this->_connection = __identifier(value);
        if (this->Adapter->InsertCommand != nullptr) {
            this->Adapter->InsertCommand->Connection = __identifier(value);
        }
        if (this->Adapter->DeleteCommand != nullptr) {
            this->Adapter->DeleteCommand->Connection = __identifier(value);
        }
        if (this->Adapter->UpdateCommand != nullptr) {
            this->Adapter->UpdateCommand->Connection = __identifier(value);
        }
        for (        System::Int32 i = 0; (i < this->CommandCollection->Length);         i = (i + 1)) {
            if (this->CommandCollection[i] != nullptr) {
                (cli::safe_cast<System::Data::OleDb::OleDbCommand^  >(this->CommandCollection[i]))->Connection = __identifier(value);
            }
        }
    }
    
    inline cli::array< System::Data::OleDb::OleDbCommand^  >^  OrdersDetailsTableAdapter::CommandCollection::get() {
        if (this->_commandCollection == nullptr) {
            this->InitCommandCollection();
        }
        return this->_commandCollection;
    }
    
    inline System::Boolean OrdersDetailsTableAdapter::ClearBeforeFill::get() {
        return this->_clearBeforeFill;
    }
    inline System::Void OrdersDetailsTableAdapter::ClearBeforeFill::set(System::Boolean value) {
        this->_clearBeforeFill = __identifier(value);
    }
    
    inline System::Void OrdersDetailsTableAdapter::InitAdapter() {
        this->_adapter = (gcnew System::Data::OleDb::OleDbDataAdapter());
        System::Data::Common::DataTableMapping^  tableMapping = (gcnew System::Data::Common::DataTableMapping());
        tableMapping->SourceTable = L"Table";
        tableMapping->DataSetTable = L"OrdersDetails";
        tableMapping->ColumnMappings->Add(L"OrdersDetailsId", L"OrdersDetailsId");
        tableMapping->ColumnMappings->Add(L"ProductId", L"ProductId");
        tableMapping->ColumnMappings->Add(L"Price", L"Price");
        tableMapping->ColumnMappings->Add(L"Volume", L"Volume");
        tableMapping->ColumnMappings->Add(L"OrdersId", L"OrdersId");
        this->_adapter->TableMappings->Add(tableMapping);
        this->_adapter->DeleteCommand = (gcnew System::Data::OleDb::OleDbCommand());
        this->_adapter->DeleteCommand->Connection = this->Connection;
        this->_adapter->DeleteCommand->CommandText = L"DELETE FROM `OrdersDetails` WHERE ((`OrdersDetailsId` = \?) AND ((\? = 1 AND `Produ" 
L"ctId` IS NULL) OR (`ProductId` = \?)) AND ((\? = 1 AND `Price` IS NULL) OR (`Price" 
L"` = \?)) AND ((\? = 1 AND `Volume` IS NULL) OR (`Volume` = \?)) AND ((\? = 1 AND `Or" 
L"dersId` IS NULL) OR (`OrdersId` = \?)))";
        this->_adapter->DeleteCommand->CommandType = System::Data::CommandType::Text;
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_OrdersDetailsId", 
                System::Data::OleDb::OleDbType::Integer, 0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), 
                L"OrdersDetailsId", System::Data::DataRowVersion::Original, false, nullptr)));
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"IsNull_ProductId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"ProductId", 
                System::Data::DataRowVersion::Original, true, nullptr)));
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_ProductId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"ProductId", 
                System::Data::DataRowVersion::Original, false, nullptr)));
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"IsNull_Price", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Price", System::Data::DataRowVersion::Original, 
                true, nullptr)));
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_Price", System::Data::OleDb::OleDbType::Currency, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Price", System::Data::DataRowVersion::Original, 
                false, nullptr)));
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"IsNull_Volume", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Volume", System::Data::DataRowVersion::Original, 
                true, nullptr)));
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_Volume", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Volume", System::Data::DataRowVersion::Original, 
                false, nullptr)));
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"IsNull_OrdersId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"OrdersId", 
                System::Data::DataRowVersion::Original, true, nullptr)));
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_OrdersId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"OrdersId", 
                System::Data::DataRowVersion::Original, false, nullptr)));
        this->_adapter->InsertCommand = (gcnew System::Data::OleDb::OleDbCommand());
        this->_adapter->InsertCommand->Connection = this->Connection;
        this->_adapter->InsertCommand->CommandText = L"INSERT INTO `OrdersDetails` (`ProductId`, `Price`, `Volume`, `OrdersId`) VALUES (" 
L"\?, \?, \?, \?)";
        this->_adapter->InsertCommand->CommandType = System::Data::CommandType::Text;
        this->_adapter->InsertCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"ProductId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"ProductId", 
                System::Data::DataRowVersion::Current, false, nullptr)));
        this->_adapter->InsertCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Price", System::Data::OleDb::OleDbType::Currency, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Price", System::Data::DataRowVersion::Current, 
                false, nullptr)));
        this->_adapter->InsertCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Volume", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Volume", System::Data::DataRowVersion::Current, 
                false, nullptr)));
        this->_adapter->InsertCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"OrdersId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"OrdersId", 
                System::Data::DataRowVersion::Current, false, nullptr)));
        this->_adapter->UpdateCommand = (gcnew System::Data::OleDb::OleDbCommand());
        this->_adapter->UpdateCommand->Connection = this->Connection;
        this->_adapter->UpdateCommand->CommandText = L"UPDATE `OrdersDetails` SET `ProductId` = \?, `Price` = \?, `Volume` = \?, `OrdersId`" 
L" = \? WHERE ((`OrdersDetailsId` = \?) AND ((\? = 1 AND `ProductId` IS NULL) OR (`Pr" 
L"oductId` = \?)) AND ((\? = 1 AND `Price` IS NULL) OR (`Price` = \?)) AND ((\? = 1 AN" 
L"D `Volume` IS NULL) OR (`Volume` = \?)) AND ((\? = 1 AND `OrdersId` IS NULL) OR (`" 
L"OrdersId` = \?)))";
        this->_adapter->UpdateCommand->CommandType = System::Data::CommandType::Text;
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"ProductId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"ProductId", 
                System::Data::DataRowVersion::Current, false, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Price", System::Data::OleDb::OleDbType::Currency, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Price", System::Data::DataRowVersion::Current, 
                false, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Volume", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Volume", System::Data::DataRowVersion::Current, 
                false, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"OrdersId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"OrdersId", 
                System::Data::DataRowVersion::Current, false, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_OrdersDetailsId", 
                System::Data::OleDb::OleDbType::Integer, 0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), 
                L"OrdersDetailsId", System::Data::DataRowVersion::Original, false, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"IsNull_ProductId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"ProductId", 
                System::Data::DataRowVersion::Original, true, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_ProductId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"ProductId", 
                System::Data::DataRowVersion::Original, false, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"IsNull_Price", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Price", System::Data::DataRowVersion::Original, 
                true, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_Price", System::Data::OleDb::OleDbType::Currency, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Price", System::Data::DataRowVersion::Original, 
                false, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"IsNull_Volume", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Volume", System::Data::DataRowVersion::Original, 
                true, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_Volume", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"Volume", System::Data::DataRowVersion::Original, 
                false, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"IsNull_OrdersId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"OrdersId", 
                System::Data::DataRowVersion::Original, true, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_OrdersId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"OrdersId", 
                System::Data::DataRowVersion::Original, false, nullptr)));
    }
    
    inline System::Void OrdersDetailsTableAdapter::InitConnection() {
        this->_connection = (gcnew System::Data::OleDb::OleDbConnection());
        this->_connection->ConnectionString = L"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Work\\Borey.mdb";
    }
    
    inline System::Void OrdersDetailsTableAdapter::InitCommandCollection() {
        this->_commandCollection = gcnew cli::array< System::Data::OleDb::OleDbCommand^  >(1);
        this->_commandCollection[0] = (gcnew System::Data::OleDb::OleDbCommand());
        this->_commandCollection[0]->Connection = this->Connection;
        this->_commandCollection[0]->CommandText = L"SELECT OrdersDetailsId, ProductId, Price, Volume, OrdersId FROM OrdersDetails";
        this->_commandCollection[0]->CommandType = System::Data::CommandType::Text;
    }
    
    inline System::Int32 OrdersDetailsTableAdapter::Fill(s3::BoreyDataSet::OrdersDetailsDataTable^  dataTable) {
        this->Adapter->SelectCommand = this->CommandCollection[0];
        if (this->ClearBeforeFill == true) {
            dataTable->Clear();
        }
        System::Int32 returnValue = this->Adapter->Fill(dataTable);
        return returnValue;
    }
    
    inline s3::BoreyDataSet::OrdersDetailsDataTable^  OrdersDetailsTableAdapter::GetData() {
        this->Adapter->SelectCommand = this->CommandCollection[0];
        s3::BoreyDataSet::OrdersDetailsDataTable^  dataTable = (gcnew s3::BoreyDataSet::OrdersDetailsDataTable());
        this->Adapter->Fill(dataTable);
        return dataTable;
    }
    
    inline System::Int32 OrdersDetailsTableAdapter::Update(s3::BoreyDataSet::OrdersDetailsDataTable^  dataTable) {
        return this->Adapter->Update(dataTable);
    }
    
    inline System::Int32 OrdersDetailsTableAdapter::Update(s3::BoreyDataSet^  dataSet) {
        return this->Adapter->Update(dataSet, L"OrdersDetails");
    }
    
    inline System::Int32 OrdersDetailsTableAdapter::Update(System::Data::DataRow^  dataRow) {
        return this->Adapter->Update(gcnew cli::array< System::Data::DataRow^  >(1) {dataRow});
    }
    
    inline System::Int32 OrdersDetailsTableAdapter::Update(cli::array< System::Data::DataRow^  >^  dataRows) {
        return this->Adapter->Update(dataRows);
    }
    
    inline System::Int32 OrdersDetailsTableAdapter::Delete(System::Int32 Original_OrdersDetailsId, System::Nullable<System::Int32 > Original_ProductId, 
                System::Nullable<System::Decimal > Original_Price, System::Nullable<System::Int32 > Original_Volume, System::Nullable<System::Int32 > Original_OrdersId) {
        this->Adapter->DeleteCommand->Parameters[0]->Value = static_cast<System::Int32>(Original_OrdersDetailsId);
        if (Original_ProductId.HasValue == true) {
            this->Adapter->DeleteCommand->Parameters[1]->Value = cli::safe_cast<System::Object^>(0);
            this->Adapter->DeleteCommand->Parameters[2]->Value = static_cast<System::Int32>(Original_ProductId.Value);
        }
        else {
            this->Adapter->DeleteCommand->Parameters[1]->Value = cli::safe_cast<System::Object^>(1);
            this->Adapter->DeleteCommand->Parameters[2]->Value = System::DBNull::Value;
        }
        if (Original_Price.HasValue == true) {
            this->Adapter->DeleteCommand->Parameters[3]->Value = cli::safe_cast<System::Object^>(0);
            this->Adapter->DeleteCommand->Parameters[4]->Value = static_cast<System::Decimal>(Original_Price.Value);
        }
        else {
            this->Adapter->DeleteCommand->Parameters[3]->Value = cli::safe_cast<System::Object^>(1);
            this->Adapter->DeleteCommand->Parameters[4]->Value = System::DBNull::Value;
        }
        if (Original_Volume.HasValue == true) {
            this->Adapter->DeleteCommand->Parameters[5]->Value = cli::safe_cast<System::Object^>(0);
            this->Adapter->DeleteCommand->Parameters[6]->Value = static_cast<System::Int32>(Original_Volume.Value);
        }
        else {
            this->Adapter->DeleteCommand->Parameters[5]->Value = cli::safe_cast<System::Object^>(1);
            this->Adapter->DeleteCommand->Parameters[6]->Value = System::DBNull::Value;
        }
        if (Original_OrdersId.HasValue == true) {
            this->Adapter->DeleteCommand->Parameters[7]->Value = cli::safe_cast<System::Object^>(0);
            this->Adapter->DeleteCommand->Parameters[8]->Value = static_cast<System::Int32>(Original_OrdersId.Value);
        }
        else {
            this->Adapter->DeleteCommand->Parameters[7]->Value = cli::safe_cast<System::Object^>(1);
            this->Adapter->DeleteCommand->Parameters[8]->Value = System::DBNull::Value;
        }
        System::Data::ConnectionState previousConnectionState = this->Adapter->DeleteCommand->Connection->State;
        if ((this->Adapter->DeleteCommand->Connection->State & System::Data::ConnectionState::Open) 
                    != System::Data::ConnectionState::Open) {
            this->Adapter->DeleteCommand->Connection->Open();
        }
        try {
            System::Int32 returnValue = this->Adapter->DeleteCommand->ExecuteNonQuery();
            return returnValue;
        }
        finally {
            if (previousConnectionState == System::Data::ConnectionState::Closed) {
                this->Adapter->DeleteCommand->Connection->Close();
            }
        }
    }
    
    inline System::Int32 OrdersDetailsTableAdapter::Insert(System::Nullable<System::Int32 > ProductId, System::Nullable<System::Decimal > Price, 
                System::Nullable<System::Int32 > Volume, System::Nullable<System::Int32 > OrdersId) {
        if (ProductId.HasValue == true) {
            this->Adapter->InsertCommand->Parameters[0]->Value = static_cast<System::Int32>(ProductId.Value);
        }
        else {
            this->Adapter->InsertCommand->Parameters[0]->Value = System::DBNull::Value;
        }
        if (Price.HasValue == true) {
            this->Adapter->InsertCommand->Parameters[1]->Value = static_cast<System::Decimal>(Price.Value);
        }
        else {
            this->Adapter->InsertCommand->Parameters[1]->Value = System::DBNull::Value;
        }
        if (Volume.HasValue == true) {
            this->Adapter->InsertCommand->Parameters[2]->Value = static_cast<System::Int32>(Volume.Value);
        }
        else {
            this->Adapter->InsertCommand->Parameters[2]->Value = System::DBNull::Value;
        }
        if (OrdersId.HasValue == true) {
            this->Adapter->InsertCommand->Parameters[3]->Value = static_cast<System::Int32>(OrdersId.Value);
        }
        else {
            this->Adapter->InsertCommand->Parameters[3]->Value = System::DBNull::Value;
        }
        System::Data::ConnectionState previousConnectionState = this->Adapter->InsertCommand->Connection->State;
        if ((this->Adapter->InsertCommand->Connection->State & System::Data::ConnectionState::Open) 
                    != System::Data::ConnectionState::Open) {
            this->Adapter->InsertCommand->Connection->Open();
        }
        try {
            System::Int32 returnValue = this->Adapter->InsertCommand->ExecuteNonQuery();
            return returnValue;
        }
        finally {
            if (previousConnectionState == System::Data::ConnectionState::Closed) {
                this->Adapter->InsertCommand->Connection->Close();
            }
        }
    }
    
    inline System::Int32 OrdersDetailsTableAdapter::Update(
                System::Nullable<System::Int32 > ProductId, 
                System::Nullable<System::Decimal > Price, 
                System::Nullable<System::Int32 > Volume, 
                System::Nullable<System::Int32 > OrdersId, 
                System::Int32 Original_OrdersDetailsId, 
                System::Nullable<System::Int32 > Original_ProductId, 
                System::Nullable<System::Decimal > Original_Price, 
                System::Nullable<System::Int32 > Original_Volume, 
                System::Nullable<System::Int32 > Original_OrdersId) {
        if (ProductId.HasValue == true) {
            this->Adapter->UpdateCommand->Parameters[0]->Value = static_cast<System::Int32>(ProductId.Value);
        }
        else {
            this->Adapter->UpdateCommand->Parameters[0]->Value = System::DBNull::Value;
        }
        if (Price.HasValue == true) {
            this->Adapter->UpdateCommand->Parameters[1]->Value = static_cast<System::Decimal>(Price.Value);
        }
        else {
            this->Adapter->UpdateCommand->Parameters[1]->Value = System::DBNull::Value;
        }
        if (Volume.HasValue == true) {
            this->Adapter->UpdateCommand->Parameters[2]->Value = static_cast<System::Int32>(Volume.Value);
        }
        else {
            this->Adapter->UpdateCommand->Parameters[2]->Value = System::DBNull::Value;
        }
        if (OrdersId.HasValue == true) {
            this->Adapter->UpdateCommand->Parameters[3]->Value = static_cast<System::Int32>(OrdersId.Value);
        }
        else {
            this->Adapter->UpdateCommand->Parameters[3]->Value = System::DBNull::Value;
        }
        this->Adapter->UpdateCommand->Parameters[4]->Value = static_cast<System::Int32>(Original_OrdersDetailsId);
        if (Original_ProductId.HasValue == true) {
            this->Adapter->UpdateCommand->Parameters[5]->Value = cli::safe_cast<System::Object^>(0);
            this->Adapter->UpdateCommand->Parameters[6]->Value = static_cast<System::Int32>(Original_ProductId.Value);
        }
        else {
            this->Adapter->UpdateCommand->Parameters[5]->Value = cli::safe_cast<System::Object^>(1);
            this->Adapter->UpdateCommand->Parameters[6]->Value = System::DBNull::Value;
        }
        if (Original_Price.HasValue == true) {
            this->Adapter->UpdateCommand->Parameters[7]->Value = cli::safe_cast<System::Object^>(0);
            this->Adapter->UpdateCommand->Parameters[8]->Value = static_cast<System::Decimal>(Original_Price.Value);
        }
        else {
            this->Adapter->UpdateCommand->Parameters[7]->Value = cli::safe_cast<System::Object^>(1);
            this->Adapter->UpdateCommand->Parameters[8]->Value = System::DBNull::Value;
        }
        if (Original_Volume.HasValue == true) {
            this->Adapter->UpdateCommand->Parameters[9]->Value = cli::safe_cast<System::Object^>(0);
            this->Adapter->UpdateCommand->Parameters[10]->Value = static_cast<System::Int32>(Original_Volume.Value);
        }
        else {
            this->Adapter->UpdateCommand->Parameters[9]->Value = cli::safe_cast<System::Object^>(1);
            this->Adapter->UpdateCommand->Parameters[10]->Value = System::DBNull::Value;
        }
        if (Original_OrdersId.HasValue == true) {
            this->Adapter->UpdateCommand->Parameters[11]->Value = cli::safe_cast<System::Object^>(0);
            this->Adapter->UpdateCommand->Parameters[12]->Value = static_cast<System::Int32>(Original_OrdersId.Value);
        }
        else {
            this->Adapter->UpdateCommand->Parameters[11]->Value = cli::safe_cast<System::Object^>(1);
            this->Adapter->UpdateCommand->Parameters[12]->Value = System::DBNull::Value;
        }
        System::Data::ConnectionState previousConnectionState = this->Adapter->UpdateCommand->Connection->State;
        if ((this->Adapter->UpdateCommand->Connection->State & System::Data::ConnectionState::Open) 
                    != System::Data::ConnectionState::Open) {
            this->Adapter->UpdateCommand->Connection->Open();
        }
        try {
            System::Int32 returnValue = this->Adapter->UpdateCommand->ExecuteNonQuery();
            return returnValue;
        }
        finally {
            if (previousConnectionState == System::Data::ConnectionState::Closed) {
                this->Adapter->UpdateCommand->Connection->Close();
            }
        }
    }
    
    
    inline ProductTableAdapter::ProductTableAdapter() {
        this->ClearBeforeFill = true;
    }
    
    inline System::Data::OleDb::OleDbDataAdapter^  ProductTableAdapter::Adapter::get() {
        if (this->_adapter == nullptr) {
            this->InitAdapter();
        }
        return this->_adapter;
    }
    
    inline System::Data::OleDb::OleDbConnection^  ProductTableAdapter::Connection::get() {
        if (this->_connection == nullptr) {
            this->InitConnection();
        }
        return this->_connection;
    }
    inline System::Void ProductTableAdapter::Connection::set(System::Data::OleDb::OleDbConnection^  value) {
        this->_connection = __identifier(value);
        if (this->Adapter->InsertCommand != nullptr) {
            this->Adapter->InsertCommand->Connection = __identifier(value);
        }
        if (this->Adapter->DeleteCommand != nullptr) {
            this->Adapter->DeleteCommand->Connection = __identifier(value);
        }
        if (this->Adapter->UpdateCommand != nullptr) {
            this->Adapter->UpdateCommand->Connection = __identifier(value);
        }
        for (        System::Int32 i = 0; (i < this->CommandCollection->Length);         i = (i + 1)) {
            if (this->CommandCollection[i] != nullptr) {
                (cli::safe_cast<System::Data::OleDb::OleDbCommand^  >(this->CommandCollection[i]))->Connection = __identifier(value);
            }
        }
    }
    
    inline cli::array< System::Data::OleDb::OleDbCommand^  >^  ProductTableAdapter::CommandCollection::get() {
        if (this->_commandCollection == nullptr) {
            this->InitCommandCollection();
        }
        return this->_commandCollection;
    }
    
    inline System::Boolean ProductTableAdapter::ClearBeforeFill::get() {
        return this->_clearBeforeFill;
    }
    inline System::Void ProductTableAdapter::ClearBeforeFill::set(System::Boolean value) {
        this->_clearBeforeFill = __identifier(value);
    }
    
    inline System::Void ProductTableAdapter::InitAdapter() {
        this->_adapter = (gcnew System::Data::OleDb::OleDbDataAdapter());
        System::Data::Common::DataTableMapping^  tableMapping = (gcnew System::Data::Common::DataTableMapping());
        tableMapping->SourceTable = L"Table";
        tableMapping->DataSetTable = L"Product";
        tableMapping->ColumnMappings->Add(L"ProductId", L"ProductId");
        tableMapping->ColumnMappings->Add(L"ProductName", L"ProductName");
        this->_adapter->TableMappings->Add(tableMapping);
        this->_adapter->DeleteCommand = (gcnew System::Data::OleDb::OleDbCommand());
        this->_adapter->DeleteCommand->Connection = this->Connection;
        this->_adapter->DeleteCommand->CommandText = L"DELETE FROM `Product` WHERE ((`ProductId` = \?) AND ((\? = 1 AND `ProductName` IS N" 
L"ULL) OR (`ProductName` = \?)))";
        this->_adapter->DeleteCommand->CommandType = System::Data::CommandType::Text;
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_ProductId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"ProductId", 
                System::Data::DataRowVersion::Original, false, nullptr)));
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"IsNull_ProductName", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"ProductName", 
                System::Data::DataRowVersion::Original, true, nullptr)));
        this->_adapter->DeleteCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_ProductName", System::Data::OleDb::OleDbType::VarWChar, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"ProductName", 
                System::Data::DataRowVersion::Original, false, nullptr)));
        this->_adapter->InsertCommand = (gcnew System::Data::OleDb::OleDbCommand());
        this->_adapter->InsertCommand->Connection = this->Connection;
        this->_adapter->InsertCommand->CommandText = L"INSERT INTO `Product` (`ProductName`) VALUES (\?)";
        this->_adapter->InsertCommand->CommandType = System::Data::CommandType::Text;
        this->_adapter->InsertCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"ProductName", System::Data::OleDb::OleDbType::VarWChar, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"ProductName", 
                System::Data::DataRowVersion::Current, false, nullptr)));
        this->_adapter->UpdateCommand = (gcnew System::Data::OleDb::OleDbCommand());
        this->_adapter->UpdateCommand->Connection = this->Connection;
        this->_adapter->UpdateCommand->CommandText = L"UPDATE `Product` SET `ProductName` = \? WHERE ((`ProductId` = \?) AND ((\? = 1 AND `" 
L"ProductName` IS NULL) OR (`ProductName` = \?)))";
        this->_adapter->UpdateCommand->CommandType = System::Data::CommandType::Text;
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"ProductName", System::Data::OleDb::OleDbType::VarWChar, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"ProductName", 
                System::Data::DataRowVersion::Current, false, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_ProductId", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"ProductId", 
                System::Data::DataRowVersion::Original, false, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"IsNull_ProductName", System::Data::OleDb::OleDbType::Integer, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"ProductName", 
                System::Data::DataRowVersion::Original, true, nullptr)));
        this->_adapter->UpdateCommand->Parameters->Add((gcnew System::Data::OleDb::OleDbParameter(L"Original_ProductName", System::Data::OleDb::OleDbType::VarWChar, 
                0, System::Data::ParameterDirection::Input, static_cast<System::Byte>(0), static_cast<System::Byte>(0), L"ProductName", 
                System::Data::DataRowVersion::Original, false, nullptr)));
    }
    
    inline System::Void ProductTableAdapter::InitConnection() {
        this->_connection = (gcnew System::Data::OleDb::OleDbConnection());
        this->_connection->ConnectionString = L"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Work\\Borey.mdb";
    }
    
    inline System::Void ProductTableAdapter::InitCommandCollection() {
        this->_commandCollection = gcnew cli::array< System::Data::OleDb::OleDbCommand^  >(1);
        this->_commandCollection[0] = (gcnew System::Data::OleDb::OleDbCommand());
        this->_commandCollection[0]->Connection = this->Connection;
        this->_commandCollection[0]->CommandText = L"SELECT ProductId, ProductName FROM Product";
        this->_commandCollection[0]->CommandType = System::Data::CommandType::Text;
    }
    
    inline System::Int32 ProductTableAdapter::Fill(s3::BoreyDataSet::ProductDataTable^  dataTable) {
        this->Adapter->SelectCommand = this->CommandCollection[0];
        if (this->ClearBeforeFill == true) {
            dataTable->Clear();
        }
        System::Int32 returnValue = this->Adapter->Fill(dataTable);
        return returnValue;
    }
    
    inline s3::BoreyDataSet::ProductDataTable^  ProductTableAdapter::GetData() {
        this->Adapter->SelectCommand = this->CommandCollection[0];
        s3::BoreyDataSet::ProductDataTable^  dataTable = (gcnew s3::BoreyDataSet::ProductDataTable());
        this->Adapter->Fill(dataTable);
        return dataTable;
    }
    
    inline System::Int32 ProductTableAdapter::Update(s3::BoreyDataSet::ProductDataTable^  dataTable) {
        return this->Adapter->Update(dataTable);
    }
    
    inline System::Int32 ProductTableAdapter::Update(s3::BoreyDataSet^  dataSet) {
        return this->Adapter->Update(dataSet, L"Product");
    }
    
    inline System::Int32 ProductTableAdapter::Update(System::Data::DataRow^  dataRow) {
        return this->Adapter->Update(gcnew cli::array< System::Data::DataRow^  >(1) {dataRow});
    }
    
    inline System::Int32 ProductTableAdapter::Update(cli::array< System::Data::DataRow^  >^  dataRows) {
        return this->Adapter->Update(dataRows);
    }
    
    inline System::Int32 ProductTableAdapter::Delete(System::Int32 Original_ProductId, System::String^  Original_ProductName) {
        this->Adapter->DeleteCommand->Parameters[0]->Value = static_cast<System::Int32>(Original_ProductId);
        if (Original_ProductName == nullptr) {
            this->Adapter->DeleteCommand->Parameters[1]->Value = cli::safe_cast<System::Object^>(1);
            this->Adapter->DeleteCommand->Parameters[2]->Value = System::DBNull::Value;
        }
        else {
            this->Adapter->DeleteCommand->Parameters[1]->Value = cli::safe_cast<System::Object^>(0);
            this->Adapter->DeleteCommand->Parameters[2]->Value = (cli::safe_cast<System::String^  >(Original_ProductName));
        }
        System::Data::ConnectionState previousConnectionState = this->Adapter->DeleteCommand->Connection->State;
        if ((this->Adapter->DeleteCommand->Connection->State & System::Data::ConnectionState::Open) 
                    != System::Data::ConnectionState::Open) {
            this->Adapter->DeleteCommand->Connection->Open();
        }
        try {
            System::Int32 returnValue = this->Adapter->DeleteCommand->ExecuteNonQuery();
            return returnValue;
        }
        finally {
            if (previousConnectionState == System::Data::ConnectionState::Closed) {
                this->Adapter->DeleteCommand->Connection->Close();
            }
        }
    }
    
    inline System::Int32 ProductTableAdapter::Insert(System::String^  ProductName) {
        if (ProductName == nullptr) {
            this->Adapter->InsertCommand->Parameters[0]->Value = System::DBNull::Value;
        }
        else {
            this->Adapter->InsertCommand->Parameters[0]->Value = (cli::safe_cast<System::String^  >(ProductName));
        }
        System::Data::ConnectionState previousConnectionState = this->Adapter->InsertCommand->Connection->State;
        if ((this->Adapter->InsertCommand->Connection->State & System::Data::ConnectionState::Open) 
                    != System::Data::ConnectionState::Open) {
            this->Adapter->InsertCommand->Connection->Open();
        }
        try {
            System::Int32 returnValue = this->Adapter->InsertCommand->ExecuteNonQuery();
            return returnValue;
        }
        finally {
            if (previousConnectionState == System::Data::ConnectionState::Closed) {
                this->Adapter->InsertCommand->Connection->Close();
            }
        }
    }
    
    inline System::Int32 ProductTableAdapter::Update(System::String^  ProductName, System::Int32 Original_ProductId, System::String^  Original_ProductName) {
        if (ProductName == nullptr) {
            this->Adapter->UpdateCommand->Parameters[0]->Value = System::DBNull::Value;
        }
        else {
            this->Adapter->UpdateCommand->Parameters[0]->Value = (cli::safe_cast<System::String^  >(ProductName));
        }
        this->Adapter->UpdateCommand->Parameters[1]->Value = static_cast<System::Int32>(Original_ProductId);
        if (Original_ProductName == nullptr) {
            this->Adapter->UpdateCommand->Parameters[2]->Value = cli::safe_cast<System::Object^>(1);
            this->Adapter->UpdateCommand->Parameters[3]->Value = System::DBNull::Value;
        }
        else {
            this->Adapter->UpdateCommand->Parameters[2]->Value = cli::safe_cast<System::Object^>(0);
            this->Adapter->UpdateCommand->Parameters[3]->Value = (cli::safe_cast<System::String^  >(Original_ProductName));
        }
        System::Data::ConnectionState previousConnectionState = this->Adapter->UpdateCommand->Connection->State;
        if ((this->Adapter->UpdateCommand->Connection->State & System::Data::ConnectionState::Open) 
                    != System::Data::ConnectionState::Open) {
            this->Adapter->UpdateCommand->Connection->Open();
        }
        try {
            System::Int32 returnValue = this->Adapter->UpdateCommand->ExecuteNonQuery();
            return returnValue;
        }
        finally {
            if (previousConnectionState == System::Data::ConnectionState::Closed) {
                this->Adapter->UpdateCommand->Connection->Close();
            }
        }
    }
    }
}
