/// <summary>
        /// Releases this System.Windows.Forms.DataGrid.
        /// </summary>
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                if (this.sqlDataAdapter != null)
                {
                    this.sqlDataAdapter = null;
                }
            }

            base.Dispose(disposing);
        }
        /// <summary>
        /// Load or reloads a subset of the table content. In order to successfully
        /// call this method, you need to call first the Initialize method.
        /// </summary>
        /// <param name="startRecord">The zero-based record number to start with.</param>
        /// <param name="maxRecords">The maximum number of records to retrieve.</param>
        public void RefreshData(int startRecord, int maxRecords)
        {
            this.CreateControl();

            if (this.LastKnownConnectionType == Bob.DataClasses.ConnectionType.None)
            {
                throw new InvalidOperationException("You must call the 'Initialize' method before calling this method.");
            }


            switch (this.LastKnownConnectionType)
            {
            case Bob.DataClasses.ConnectionType.ConnectionString:
                this.sqlDataAdapter = new Bob.SqlDataAdapters.SqlDataAdapter_JobPartType(this.connectionString, "JobPartType");
                break;

            case Bob.DataClasses.ConnectionType.SqlConnection:
                this.sqlDataAdapter = new Bob.SqlDataAdapters.SqlDataAdapter_JobPartType(this.sqlConnection, "JobPartType");
                break;
            }

            this.dataSet = null;

            if (startRecord == -1 && maxRecords == -1)
            {
                this.sqlDataAdapter.FillDataSet(ref this.dataSet);
            }
            else
            {
                this.sqlDataAdapter.FillDataSet(ref this.dataSet, startRecord, maxRecords);
            }

            this.dataSet.Tables["JobPartType"].Columns["JobPartTypeId"].Caption   = "JobPartTypeId (update this label in the \"Olymars/ColumnLabel\" extended property of the \"JobPartTypeId\" column)";
            this.dataSet.Tables["JobPartType"].Columns["Description"].Caption     = "Description (update this label in the \"Olymars/ColumnLabel\" extended property of the \"Description\" column)";
            this.dataSet.Tables["JobPartType"].Columns["GeneralUnitCost"].Caption = "GeneralUnitCost (update this label in the \"Olymars/ColumnLabel\" extended property of the \"GeneralUnitCost\" column)";

            this.bindingInProgress = true;
            this.DataSource        = this.dataSet.Tables["JobPartType"].DefaultView;
            this.bindingInProgress = false;
        }