Click here to Skip to main content
Click here to Skip to main content
Add your own
alternative version
Go to top

Database Helper Class Library to Ease Database Operation

, 14 Apr 2007
Database Helper Class Library to Ease Database Operation
article_demo.zip
DBHelperQuickRelationshipSamples
DBHelperQuickRelationshipSamples
App.ico
DBHelperQuickRelationshipSamples.csproj.user
DBHelperQuickRelationshipSamples.suo
DBHelperQuickSelectSamples
DBHelperQuickSelectSamples
DBHelperQuickSelectSamples.csproj.user
DBHelperQuickSelectSamples.suo
DBHelperQuickHelperSamples
DBHelperQuickHelperSamples
App.ico
DBHelperQuickHelperSamples.csproj.user
DBHelperQuickHelperSamples.suo
DBHelperQuickInsUpdDelSamples
DBHelperQuickInsUpdDelSamples
DBHelperQuickInsUpdDelSamples.csproj.user
DBHelperQuickInsUpdDelSamples.suo
article_src.zip
Microsoft.ApplicationBlocks.ExceptionManagement.Interfaces
Microsoft.ApplicationBlocks.ExceptionManagement.Interfaces.csproj.user
Microsoft.ApplicationBlocks.ExceptionManagement.suo
DbHelper
DBHelper.chm
DBHelper.csproj.user
DbHelper.ndoc
DBHelper.suo
Microsoft.ApplicationBlocks.ExceptionManagement
ExceptionManagerText.xsx
Microsoft.ApplicationBlocks.ExceptionManagement.csproj.user
Microsoft.ApplicationBlocks.suo
<?xml version="1.0"?>
<doc>
    <assembly>
        <name>DBHelper</name>
    </assembly>
    <members>
        <member name="T:DBHelper.DataException.TableHelperNotInTheCollection">
            <summary>
            Exception that describes the Collection instance does not contain
            the TableHelper with the specified table name.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.TableHelperNotInTheCollection.#ctor(System.String)">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.TableHelperNotInTheCollection"/>
            class with the specified table name (Table name for the TableHelper).
            </summary>
            <param name="strTableName">The table name.</param>
        </member>
        <member name="T:DBHelper.DataException.TableHelperOutOfRange">
            <summary>
            Exception that describes the provided index is out of DataSetHelper
            instance range.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.TableHelperOutOfRange.#ctor(System.Int32)">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.TableHelperOutOfRange"/>
            class with the specified index.
            </summary>
            <param name="iIndex">The index.</param>
        </member>
        <member name="P:DBHelper.DataException.TableHelperOutOfRange.Index">
            <summary>
            Gets the out of range index.
            </summary>
        </member>
        <member name="T:DBHelper.DataException.CaseInsensitiveNameConflict">
            <summary>
            Exception that describes 2 or more than 2 instance is found for the same name 
            with case insensitive comparison.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.CaseInsensitiveNameConflict.#ctor(System.String)">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.CaseInsensitiveNameConflict"/>
            class with the specified case insensitive conflict name.
            </summary>
            <param name="strTableName">The case insensitive conflict name.</param>
        </member>
        <member name="T:DBHelper.DataException.NoPrimaryOrUniqueKeyAvailable">
            <summary>
            Exception that describes primary key or unique key constraint is not available
            in a TableHelper instance.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.NoPrimaryOrUniqueKeyAvailable.#ctor">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.NoPrimaryOrUniqueKeyAvailable"/>
            class.
            </summary>
        </member>
        <member name="T:DBHelper.DataException.NoFieldsAvailable">
            <summary>
            Exception that describes fields is not available for the specified table name.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.NoFieldsAvailable.#ctor(System.String)">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.NoFieldsAvailable"/>
            class with the specified table name.
            </summary>
            <param name="strTableName">The table name.</param>
        </member>
        <member name="T:DBHelper.DataException.ParentRelationAlreadyExist">
            <summary>
            Exception that describes the specified parent relationship is already exist
            for the TableHelper instance.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.ParentRelationAlreadyExist.#ctor">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.ParentRelationAlreadyExist"/>
            class.
            </summary>
        </member>
        <member name="T:DBHelper.DataException.ForeignRelationAlreadyExist">
            <summary>
            Exception that describes the specified foreign relationship is already exist
            for the TableHelper instance.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.ForeignRelationAlreadyExist.#ctor">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.ForeignRelationAlreadyExist"/>
            class.
            </summary>
        </member>
        <member name="T:DBHelper.DataException.KeyLengthMismatch">
            <summary>
            Exception that describes length between 2 <see cref="T:DBHelper.DBKey"/> instances is different.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.KeyLengthMismatch.#ctor">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.KeyLengthMismatch"/>
            class.
            </summary>
        </member>
        <member name="T:DBHelper.DataException.KeyColumnsIdentical">
            <summary>
            Exception that describes columns between 2 <see cref="T:DBHelper.DBKey"/> instances is identical.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.KeyColumnsIdentical.#ctor">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.KeyColumnsIdentical"/>
            class.
            </summary>
        </member>
        <member name="T:DBHelper.DataException.ColumnsTypeMismatch">
            <summary>
            Exception that describes columns type between 2 <see cref="T:DBHelper.DBKey"/> instances is mismatch.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.ColumnsTypeMismatch.#ctor">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.ColumnsTypeMismatch"/>
            class.
            </summary>
        </member>
        <member name="T:DBHelper.DataException.ColumnNotInAnyTable">
            <summary>
            Exception that describes the column does not belong to any tables.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.ColumnNotInAnyTable.#ctor">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.ColumnNotInAnyTable"/>
            class.
            </summary>
        </member>
        <member name="T:DBHelper.DataException.KeyTableMismatch">
            <summary>
            Exception that describes columns' tables are mismatch.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.KeyTableMismatch.#ctor">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.KeyTableMismatch"/>
            class.
            </summary>
        </member>
        <member name="T:DBHelper.DataException.KeyNoColumns">
            <summary>
            Exception that describes the length of <see cref="T:DBHelper.DBKey"/> array parameter is zero.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.KeyNoColumns.#ctor">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.KeyNoColumns"/>
            class.
            </summary>
        </member>
        <member name="T:DBHelper.DataException.KeyTooManyColumns">
            <summary>
            Exception that describes the database key length is more than the specified.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.KeyTooManyColumns.#ctor(System.Int32)">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.KeyTooManyColumns"/>
            class with the specified key total.
            </summary>
            <param name="iTotalKey">The key total.</param>
        </member>
        <member name="T:DBHelper.DataException.KeyDuplicateColumns">
            <summary>
            Exception that describes the columns in <see cref="T:DBHelper.DBKey"/> instance are duplicate.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.KeyDuplicateColumns.#ctor(System.String)">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.KeyDuplicateColumns"/>
            class with the duplicate column name.
            </summary>
            <param name="strColumnName">The duplicate column name.</param>
        </member>
        <member name="T:DBHelper.DataException.KeySortLength">
            <summary>
            Exception that describes the provide length of database sort key is different
            with the specified database key length.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.KeySortLength.#ctor">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.KeySortLength"/>
            class.
            </summary>
        </member>
        <member name="T:DBHelper.DataException.BadObjectPropertyAccess">
            <summary>
            Exception that describes property is accessed when the object becomes bad.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.BadObjectPropertyAccess.#ctor(System.String)">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.BadObjectPropertyAccess"/>
            class with the specified error message.
            </summary>
            <param name="strMessage">The error message.</param>
        </member>
        <member name="T:DBHelper.DataException.CaseLocaleMismatch">
            <summary>
            Exception that describes the case sensitivity and locale between parent table and
            child table is mismatched.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.CaseLocaleMismatch.#ctor">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.CaseLocaleMismatch"/>
            class.
            </summary>
        </member>
        <member name="T:DBHelper.DataException.RelationNotInTheCollection">
            <summary>
            Exception that describes the specified <see cref="T:DBHelper.DBRelation"/> instance is not in the collection.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.RelationNotInTheCollection.#ctor(System.String)">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.RelationNotInTheCollection"/>
            class with the missing relation name.
            </summary>
            <param name="strName">The missing relation name.</param>
        </member>
        <member name="T:DBHelper.DataException.RelationOutOfRange">
            <summary>
            Exception that describes the provided index is out of <see cref="T:DBHelper.DBRelationCollection"/>
            instance range.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.RelationOutOfRange.#ctor(System.Int32)">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.RelationOutOfRange"/>
            class with the out of range index.
            </summary>
            <param name="iIndex">The out of range index.</param>
        </member>
        <member name="P:DBHelper.DataException.RelationOutOfRange.Index">
            <summary>
            Gets the out of range index.
            </summary>
        </member>
        <member name="T:DBHelper.DataException.RelationTableNull">
            <summary>
            Exception that describes null table is passed in for a table relationship.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.RelationTableNull.#ctor">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.RelationTableNull"/>
            class.
            </summary>
        </member>
        <member name="T:DBHelper.DataException.RelationDoesNotExist">
            <summary>
            Exception that describes the specified relation instance is not exist.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.RelationDoesNotExist.#ctor">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.RelationDoesNotExist"/>
            class.
            </summary>
        </member>
        <member name="T:DBHelper.DataException.ParentTableMismatch">
            <summary>
            Exception that describes parent table in a relation is mismatched.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.ParentTableMismatch.#ctor">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.ParentTableMismatch"/>
            class.
            </summary>
        </member>
        <member name="T:DBHelper.DataException.ChildTableMismatch">
            <summary>
            Exception that describes child table in a relation is mismatched.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.ChildTableMismatch.#ctor">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.ChildTableMismatch"/>
            class.
            </summary>
        </member>
        <member name="T:DBHelper.DataException.ParentRowTableMismatch">
            <summary>
            Exception that describes the specified child table instance in <see cref="T:DBHelper.DBRelation"/>
            is mismatched with current TableHelper instance.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.ParentRowTableMismatch.#ctor(System.String,System.String)">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.ParentRowTableMismatch"/>
            class.
            </summary>
            <param name="strChildTableName">The child table name in DB relation.</param>
            <param name="strCurrentTableName">The current TableHepler's table name.</param>
        </member>
        <member name="T:DBHelper.DataException.RelationForeignTableMismatch">
            <summary>
            Exception that describes the specified parent table instance in <see cref="T:DBHelper.DBRelation"/>
            is mismatched with current TableHelper instance.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.RelationForeignTableMismatch.#ctor(System.String,System.String)">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.RelationForeignTableMismatch"/>
            class.
            </summary>
            <param name="strParentTableName">The parent table name in DB relation.</param>
            <param name="strCurrentTableName">The current TableHelper's table name.</param>
        </member>
        <member name="T:DBHelper.DataException.DuplicateNameException">
            <summary>
            Exception that describes name is duplicate.
            </summary>
        </member>
        <member name="M:DBHelper.DataException.DuplicateNameException.#ctor(System.String)">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DataException.DuplicateNameException"/>
            class with the specified error message.
            </summary>
            <param name="strErrMsg">The error message.</param>
        </member>
        <member name="T:DBHelper.DBCommon">
            <summary>
            Provides a class that provides various database helper methods.
            </summary>
            <remarks>
            All methods provided are static.
            </remarks>
        </member>
        <member name="M:DBHelper.DBCommon.#ctor">
            <summary>
            Prevents <see cref="T:DBHelper.DBCommon"/> class from been instanced.
            </summary>
        </member>
        <member name="M:DBHelper.DBCommon.DBField(System.String)">
            <summary>
            Returns a new field name within square bracket.
            </summary>
            <param name="strFieldName">Field name.</param>
            <returns>A new field name within square bracker.</returns>
        </member>
        <member name="M:DBHelper.DBCommon.DBString(System.String)">
            <summary>
            Replaces any single quote within the field value with 2 single quotes,
            and embedes the new value within 2 single quotes. 
            </summary>
            <param name="strFieldValue">Field value.</param>
            <returns>A new field value.</returns>
        </member>
        <member name="M:DBHelper.DBCommon.ConstructFilterExpression(System.String,System.Collections.IList)">
            <summary>
            Constructs a filter expression based on template and data provided.
            The filter expression can be used to select rows in DataTable instance or
            as a select criteria in direct database operation.
            </summary>
            <param name="strTemplate">Criteria template, e.g. col1 = {0} and col2 &gt; {1}.</param>
            <param name="lstData">List of data used to form the select criteria.</param>
            <returns>A select criteria with the replaced data provided.</returns>
            <exception cref="T:System.ArgumentException">
            The provided data total is not comply with provided template.
            </exception>
            <remarks>
            Format for criteria template is: <br/>
            {colomn name} {comparison symbol} {number} {logical symbol}, etc. E.g. <br/>
            col1 = {0} and col2 = {2} <br/>
            * Take note that number in curly brace after comparison symbol can be any number. <br/><br/>
            
            If data provided is null:
            <ul>
            <li>comparison = will change to "is null".</li>
            <li>comparison &lt;&gt; will change to "is not null".</li>
            <li>other comparison will remain original with the data change to "null".</li>
            </ul>
            <br/>
            If data provided is not null, the comparison will remain original with the data quoted within
            single quote and any single quotes been replaced with 2 double single quotes.
            </remarks>
            <example>
            This example shows how to construct filter expression:
            <code>
            ArrayList alData = new ArrayList();
            
            alData.Add("test'2");
            alData.Add(null);
            
            string strFilter = DBCommon.ConstructFilterExpression("col1 = {0} and col2 = {2}", alData);
            Console.WriteLine(strFilter);
            </code>
            </example>
        </member>
        <member name="M:DBHelper.DBCommon.DeepCopySqlParameter(System.Data.SqlClient.SqlParameter)">
            <summary>
            To create a deep copy of the passed-in SqlParameter instance.
            </summary>
            <param name="parameter">SqlParameter instance to deep copy.</param>
            <returns>A new instance which is deep copy of passed-in SqlParameter instance.</returns>
        </member>
        <member name="T:DBHelper.DBCriteria">
            <summary>
            Specifies the criteria type for performing database operations.
            </summary>
            <example>
            <code>
            //Use primary key to delete records
            mobjTableHelper.CriteriaType = DBCriteria.UsePrimaryKey;
            mobjCnnProvider.OpenConnection();
            mobjTableHelper.Delete();
            mobjCnnProvider.CloseConnection();
            </code>
            </example>
        </member>
        <member name="F:DBHelper.DBCriteria.None">
            <summary>
            Specifies no criteria is used.
            </summary>
        </member>
        <member name="F:DBHelper.DBCriteria.UsePrimaryKey">
            <summary>
            Specifies primary key is used.
            </summary>
        </member>
        <member name="F:DBHelper.DBCriteria.UseFilterExpression">
            <summary>
            Specifies filter expression is used.
            </summary>
        </member>
        <member name="F:DBHelper.DBCriteria.UseBoth">
            <summary>
            Specifies primary key and filter expression is used.
            </summary>
        </member>
        <member name="T:DBHelper.DBError">
            <summary>
            Error Enums used by this library.
            </summary>
        </member>
        <member name="F:DBHelper.DBError.AllOk">
            <summary>
            Everyting is Ok.
            </summary>
        </member>
        <member name="T:DBHelper.ICommonDBAccess">
            <summary>
            General interface which contains only common database methods of all classes.
            </summary>
        </member>
        <member name="M:DBHelper.ICommonDBAccess.Insert">
            <summary>
            General signature for database insert operation.
            </summary>
            <returns>True if successful.</returns>
        </member>
        <member name="M:DBHelper.ICommonDBAccess.Update">
            <summary>
            General signature for database update operation.
            </summary>
            <returns>True if successful.</returns>
        </member>
        <member name="M:DBHelper.ICommonDBAccess.Delete">
            <summary>
            General signature for database delete operation.
            </summary>
            <returns>True if successful.</returns>
        </member>
        <member name="M:DBHelper.ICommonDBAccess.SelectSome">
            <summary>
            General signature for database select operation based on select criteria.
            </summary>
            <returns>A <see cref="T:System.Data.DataTable"/> consists of selected rows.</returns>
        </member>
        <member name="M:DBHelper.ICommonDBAccess.SelectAll">
            <summary>
            General signature for database select all operation.
            </summary>
            <returns>A <see cref="T:System.Data.DataTable"/> consists of all rows in database.</returns>
        </member>
        <member name="M:DBHelper.ICommonDBAccess.DBAdapterUpdate">
            <summary>
            General signarute for database operation using <see cref="M:System.Data.Common.DataAdapter.Update(System.Data.DataSet)"/>.
            </summary>
            <returns>The number of rows successfully updated.</returns>
        </member>
        <member name="P:DBHelper.ICommonDBAccess.FieldsToSelect">
            <summary>
            Specifies fields to select from database.
            </summary>
        </member>
        <member name="P:DBHelper.ICommonDBAccess.FieldsToUpdate">
            <summary>
            Specifies fields to update to database.
            </summary>
        </member>
        <member name="P:DBHelper.ICommonDBAccess.SelectCriteria">
            <summary>
            Specifies filter expression for select operation.
            </summary>
        </member>
        <member name="P:DBHelper.ICommonDBAccess.UpdateCriteria">
            <summary>
            Specifies filter expression for update operation.
            </summary>
        </member>
        <member name="P:DBHelper.ICommonDBAccess.DeleteCriteria">
            <summary>
            Specifies filter expression for delete operation.
            </summary>
        </member>
        <member name="T:DBHelper.DBInteractionBase">
            <summary>
            Abstract base class for Database Interaction classes.
            </summary>
        </member>
        <member name="F:DBHelper.DBInteractionBase.miRowsAffected">
            <summary>
            Number of rows affected by database operation.
            </summary>
        </member>
        <member name="F:DBHelper.DBInteractionBase.miErrorCode">
            <summary>
            Error code.
            </summary>
        </member>
        <member name="F:DBHelper.DBInteractionBase.mstrConnectionString">
            <summary>
            Connection string.
            </summary>
        </member>
        <member name="M:DBHelper.DBInteractionBase.#ctor">
            <summary>
            Protected class constructor.
            </summary>
        </member>
        <member name="M:DBHelper.DBInteractionBase.InitClass">
            <summary>
            Initializes class members.
            </summary>
        </member>
        <member name="P:DBHelper.DBInteractionBase.ErrorCode">
            <summary>
            Return error code.
            </summary>
        </member>
        <member name="P:DBHelper.DBInteractionBase.ConnectionString">
            <summary>
            Specifies connection string.
            </summary>
        </member>
        <member name="P:DBHelper.DBInteractionBase.RowsAffected">
            <summary>
            Returns rows affected by database operation.
            </summary>
        </member>
        <member name="T:DBHelper.DBKey">
            <summary>
            Class that represents primary keys or foreign keys.
            </summary>
        </member>
        <member name="M:DBHelper.DBKey.#ctor(System.Data.DataColumn[])">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DBKey"/> class with the specified
            data columns.
            </summary>
            <param name="acol">An array of <see cref="T:System.Data.DataColumn"/> which forms 
            the database key.</param>
            <exception cref="T:System.ArgumentNullException">
            Bad data columns are passed.
            </exception>
            <exception cref="T:DBHelper.DataException.KeyNoColumns">
            Zero data column is passed.
            </exception>
            <exception cref="T:DBHelper.DataException.KeyTooManyColumns">
            Total of passed in data columns is more than the maximum.
            </exception>
            <exception cref="T:DBHelper.DataException.KeyDuplicateColumns">
            Duplicate data columns is passed.
            </exception>
            <exception cref="T:DBHelper.DataException.KeySortLength">
            Passed in sort order total is not same as data column total.
            </exception>
            <exception cref="T:DBHelper.DataException.ColumnNotInAnyTable">
            A <see cref="T:System.Data.DataColumn"/> is not belonging to any 
            <see cref="T:System.Data.DataTable"/>.
            </exception>
            <exception cref="T:DBHelper.DataException.KeyTableMismatch">
            <see cref="T:System.Data.DataTable"/> for every <see cref="T:System.Data.DataColumn"/>
            is not same.
            </exception>
        </member>
        <member name="M:DBHelper.DBKey.CheckState">
            <summary>
            Check whether every column in key belong to same table.
            </summary>
            <exception cref="T:DBHelper.DataException.ColumnNotInAnyTable">
            A <see cref="T:System.Data.DataColumn"/> is not belonging to any 
            <see cref="T:System.Data.DataTable"/>.
            </exception>
            <exception cref="T:DBHelper.DataException.KeyTableMismatch">
            <see cref="T:System.Data.DataTable"/> for every <see cref="T:System.Data.DataColumn"/>
            is not same.
            </exception>
        </member>
        <member name="M:DBHelper.DBKey.Create(System.Data.DataColumn[],System.Int32[])">
            <summary>
            Create a new database key.
            </summary>
            <param name="acol">An array of <see cref="T:System.Data.DataColumn"/> which 
            represent the database key.</param>
            <param name="aiSortOrders">An array of integer which represent each column's
            sort order.</param>
            <exception cref="T:System.ArgumentNullException">
            Bad data columns are passed.
            </exception>
            <exception cref="T:DBHelper.DataException.KeyNoColumns">
            Zero data column is passed.
            </exception>
            <exception cref="T:DBHelper.DataException.KeyTooManyColumns">
            Total of passed in data columns is more than the maximum.
            </exception>
            <exception cref="T:DBHelper.DataException.KeyDuplicateColumns">
            Duplicate data columns is passed.
            </exception>
            <exception cref="T:DBHelper.DataException.KeySortLength">
            Passed in sort order total is not same as data column total.
            </exception>
            <exception cref="T:DBHelper.DataException.ColumnNotInAnyTable">
            A <see cref="T:System.Data.DataColumn"/> is not belonging to any 
            <see cref="T:System.Data.DataTable"/>.
            </exception>
            <exception cref="T:DBHelper.DataException.KeyTableMismatch">
            <see cref="T:System.Data.DataTable"/> for every <see cref="T:System.Data.DataColumn"/>
            is not same.
            </exception>
        </member>
        <member name="M:DBHelper.DBKey.ColumnsEqual(DBHelper.DBKey)">
            <summary>
            Compare the equality of the specified DBKey instance with this DBKey instance.
            </summary>
            <param name="objKey">The DBKey instance to compare.</param>
            <returns>True if the compared DBKey instance is equal with this DBKey instance,
            otherwise return False.</returns>
        </member>
        <member name="M:DBHelper.DBKey.ContainsColumn(System.Data.DataColumn)">
            <summary>
            Checks whether the specified DataColumn instance is in the database key.
            </summary>
            <param name="col">The DataColumn instance to be checked.</param>
            <returns>True if the DataColumn instance is in the key otherwise return False.</returns>
        </member>
        <member name="M:DBHelper.DBKey.Equals(System.Object)">
            <summary>
            Checks the equality of the compared <see cref="T:DBHelper.DBKey"/> instance 
            with this <see cref="T:DBHelper.DBKey"/> instance.
            </summary>
            <param name="objCompareKey">The <see cref="T:DBHelper.DBKey"/> instance to be compared.</param>
            <returns>True if the compared <see cref="T:DBHelper.DBKey"/> instance is same with this 
            <see cref="T:DBHelper.DBKey"/> instance otherwise return False.</returns>
        </member>
        <member name="M:DBHelper.DBKey.GetDebugString">
            <summary>
            Gets the debug string of this <see cref="T:DBHelper.DBKey"/> instance.
            </summary>
            <returns>Return a string consists of every key's column with its sort order.</returns>
        </member>
        <member name="M:DBHelper.DBKey.GetHashCode">
            <summary>
            Gets the hash code of this <see cref="T:DBHelper.DBKey"/> instance.
            </summary>
            <returns>The hash code of this DBKey instance.</returns>
        </member>
        <member name="P:DBHelper.DBKey.Columns">
            <summary>
            Returns an array of <see cref="T:System.Data.DataColumn"/> that forms
            the database keys.
            </summary>
        </member>
        <member name="P:DBHelper.DBKey.SortOrder">
            <summary>
            Return an array of integer which specifies the sort order for every data column.
            </summary>
            <remarks>
            1 is descending otherwise 0 is ascending.
            </remarks>
        </member>
        <member name="P:DBHelper.DBKey.Table">
            <summary>
            Return <see cref="T:System.Data.DataTable"/> of the database keys.
            </summary>
        </member>
        <member name="T:DBHelper.DBRelation">
            <summary>
            Class that represents data relationship between 2 tables.
            </summary>
        </member>
        <member name="M:DBHelper.DBRelation.#ctor(System.String,DBHelper.ICommonDBAccess,DBHelper.ICommonDBAccess,System.Data.DataColumn,System.Data.DataColumn)">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DBRelation"/> by providing single parent
            and child key.
            </summary>
            <param name="strRelationName">Relationship name.</param>
            <param name="itcParent">Instance of parent storage.</param>
            <param name="itcChild">Instance of child storage.</param>
            <param name="colParent">Single column represents parent key.</param>
            <param name="colChild">Sindle column represents child key.</param>
            <exception cref="T:DBHelper.DataException.ColumnNotInAnyTable">
            A <see cref="T:System.Data.DataColumn"/> in <see cref="T:DBHelper.DBKey"/> 
            is not belonging to any <see cref="T:System.Data.DataTable"/>.
            </exception>
            <exception cref="T:DBHelper.DataException.KeyTableMismatch">
            <see cref="T:System.Data.DataTable"/> for every <see cref="T:System.Data.DataColumn"/>
            in <see cref="T:DBHelper.DBKey"/> is not same.
            </exception>
            <exception cref="T:DBHelper.DataException.KeyColumnsIdentical">
            Parent keys and child keys refers to same data columns.
            </exception>
            <exception cref="T:DBHelper.DataException.ColumnsTypeMismatch">
            Columns type for parent keys and child keys are mismatched.
            </exception>
        </member>
        <member name="M:DBHelper.DBRelation.#ctor(System.String,DBHelper.ICommonDBAccess,DBHelper.ICommonDBAccess,System.Data.DataColumn[],System.Data.DataColumn[])">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DBRelation"/> by providing multiple
            parent and child keys.
            </summary>
            <param name="strRelationName">Relationship name.</param>
            <param name="itcParent">Instance of parent storage.</param>
            <param name="itcChild">Instance of child storage.</param>
            <param name="acolParent">An array of columns represent parent keys.</param>
            <param name="acolChild">An array of columns represent child keys.</param>
            <exception cref="T:DBHelper.DataException.KeyLengthMismatch">
            Parent columns length is not same as child columns length.
            </exception>
            <exception cref="T:DBHelper.DataException.ColumnNotInAnyTable">
            A <see cref="T:System.Data.DataColumn"/> in <see cref="T:DBHelper.DBKey"/> 
            is not belonging to any <see cref="T:System.Data.DataTable"/>.
            </exception>
            <exception cref="T:DBHelper.DataException.KeyTableMismatch">
            <see cref="T:System.Data.DataTable"/> for every <see cref="T:System.Data.DataColumn"/>
            in <see cref="T:DBHelper.DBKey"/> is not same.
            </exception>
            <exception cref="T:DBHelper.DataException.KeyColumnsIdentical">
            Parent keys and child keys refers to same data columns.
            </exception>
            <exception cref="T:DBHelper.DataException.ColumnsTypeMismatch">
            Columns type for parent keys and child keys are mismatched.
            </exception>
        </member>
        <member name="M:DBHelper.DBRelation.#ctor(System.String,DBHelper.ICommonDBAccess,DBHelper.ICommonDBAccess,System.Data.DataColumn,System.Data.DataColumn,System.Boolean)">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DBRelation"/> by providing single
            parent and child key and with specified constraint creation boolean.
            </summary>
            <param name="strRelationName">Relationship name.</param>
            <param name="itcParent">Instance of parent storage.</param>
            <param name="itcChild">Instance of child storage.</param>
            <param name="colParent">Single column represents parent key.</param>
            <param name="colChild">Single column represents child key.</param>
            <param name="bCreateConstraints">True if constraints is created, otherwise False.</param>
            <remarks>
            Constraints creation is not implemented yet.
            </remarks>
            <exception cref="T:DBHelper.DataException.ColumnNotInAnyTable">
            A <see cref="T:System.Data.DataColumn"/> in <see cref="T:DBHelper.DBKey"/> 
            is not belonging to any <see cref="T:System.Data.DataTable"/>.
            </exception>
            <exception cref="T:DBHelper.DataException.KeyTableMismatch">
            <see cref="T:System.Data.DataTable"/> for every <see cref="T:System.Data.DataColumn"/>
            in <see cref="T:DBHelper.DBKey"/> is not same.
            </exception>
            <exception cref="T:DBHelper.DataException.KeyColumnsIdentical">
            Parent keys and child keys refers to same data columns.
            </exception>
            <exception cref="T:DBHelper.DataException.ColumnsTypeMismatch">
            Columns type for parent keys and child keys are mismatched.
            </exception>
        </member>
        <member name="M:DBHelper.DBRelation.#ctor(System.String,DBHelper.ICommonDBAccess,DBHelper.ICommonDBAccess,System.Data.DataColumn[],System.Data.DataColumn[],System.Boolean)">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DBRelation"/> by providing multiple
            parent and child keys and with specified constraint creation boolean.
            </summary>
            <param name="strRelationName">Relationship name.</param>
            <param name="itcParent">Instance of parent storage.</param>
            <param name="itcChild">Instance of child storage.</param>
            <param name="acolParent">An array of columns represents parent keys.</param>
            <param name="acolChild">An array of columns represents child keys.</param>
            <param name="bCreateConstraints">True if constraints is created, otherwise False.</param>
            <remarks>
            Constraints creation is not implemented yet.
            </remarks>
            <exception cref="T:DBHelper.DataException.KeyLengthMismatch">
            Parent columns length is not same as child columns length.
            </exception>
            <exception cref="T:DBHelper.DataException.ColumnNotInAnyTable">
            A <see cref="T:System.Data.DataColumn"/> in <see cref="T:DBHelper.DBKey"/> 
            is not belonging to any <see cref="T:System.Data.DataTable"/>.
            </exception>
            <exception cref="T:DBHelper.DataException.KeyTableMismatch">
            <see cref="T:System.Data.DataTable"/> for every <see cref="T:System.Data.DataColumn"/>
            in <see cref="T:DBHelper.DBKey"/> is not same.
            </exception>
            <exception cref="T:DBHelper.DataException.KeyColumnsIdentical">
            Parent keys and child keys refers to same data columns.
            </exception>
            <exception cref="T:DBHelper.DataException.ColumnsTypeMismatch">
            Columns type for parent keys and child keys are mismatched.
            </exception>
        </member>
        <member name="M:DBHelper.DBRelation.Create(System.String,DBHelper.ICommonDBAccess,DBHelper.ICommonDBAccess,System.Data.DataColumn[],System.Data.DataColumn[],System.Boolean)">
            <summary>
            Create a new instance of <see cref="T:DBHelper.DBRelation"/>.
            </summary>
            <param name="strRelationName">Relationship name.</param>
            <param name="itcParent">Instance of parent storage.</param>
            <param name="itcChild">Instance of child storage.</param>
            <param name="acolParent">An array of columns represents parent keys.</param>
            <param name="acolChild">An array of columns represents child keys.</param>
            <param name="bCreateConstraints">True if constraints is created, otherwise False.</param>
            <remarks>
            Constraints creation is not implemented yet.<br/>
            <p>
            If provided relationship name is null, relationship name will be empty string by default.
            </p>
            </remarks>
            <exception cref="T:DBHelper.DataException.KeyLengthMismatch">
            Parent columns length is not same as child columns length.
            </exception>
            <exception cref="T:DBHelper.DataException.ColumnNotInAnyTable">
            A <see cref="T:System.Data.DataColumn"/> in <see cref="T:DBHelper.DBKey"/> 
            is not belonging to any <see cref="T:System.Data.DataTable"/>.
            </exception>
            <exception cref="T:DBHelper.DataException.KeyTableMismatch">
            <see cref="T:System.Data.DataTable"/> for every <see cref="T:System.Data.DataColumn"/>
            in <see cref="T:DBHelper.DBKey"/> is not same.
            </exception>
            <exception cref="T:DBHelper.DataException.KeyColumnsIdentical">
            Parent keys and child keys refers to same data columns.
            </exception>
            <exception cref="T:DBHelper.DataException.ColumnsTypeMismatch">
            Columns type for parent keys and child keys are mismatched.
            </exception>
        </member>
        <member name="M:DBHelper.DBRelation.CheckState">
            <summary>
            Validates the provided parent keys and child keys.
            </summary>
            <exception cref="T:DBHelper.DataException.ColumnNotInAnyTable">
            A <see cref="T:System.Data.DataColumn"/> in <see cref="T:DBHelper.DBKey"/> 
            is not belonging to any <see cref="T:System.Data.DataTable"/>.
            </exception>
            <exception cref="T:DBHelper.DataException.KeyTableMismatch">
            <see cref="T:System.Data.DataTable"/> for every <see cref="T:System.Data.DataColumn"/>
            in <see cref="T:DBHelper.DBKey"/> is not same.
            </exception>
            <exception cref="T:DBHelper.DataException.KeyColumnsIdentical">
            Parent keys and child keys refers to same data columns.
            </exception>
            <exception cref="T:DBHelper.DataException.ColumnsTypeMismatch">
            Columns type for parent keys and child keys are mismatched.
            </exception>
        </member>
        <member name="M:DBHelper.DBRelation.CheckStateForProperty">
            <summary>
            Validation performed when instance property is accessed.
            </summary>
            <exception cref="T:DBHelper.DataException.BadObjectPropertyAccess">
            Instance becomes bad while property being accessed.
            </exception>
        </member>
        <member name="P:DBHelper.DBRelation.ParentColumns">
            <summary>
            Returns <see cref="T:System.Data.DataColumn"/> of parent keys.
            </summary>
            <exception cref="T:DBHelper.DataException.BadObjectPropertyAccess">
            Instance becomes bad while property being accessed.
            </exception>
        </member>
        <member name="P:DBHelper.DBRelation.ParentKey">
            <summary>
            Returns parent <see cref="T:DBHelper.DBKey"/>.
            </summary>
            <exception cref="T:DBHelper.DataException.BadObjectPropertyAccess">
            Instance becomes bad while property being accessed.
            </exception>
        </member>
        <member name="P:DBHelper.DBRelation.ParentTableHelper">
            <summary>
            Returns instance of parent table helper.
            </summary>
        </member>
        <member name="P:DBHelper.DBRelation.ParentTable">
            <summary>
            Returns parent <see cref="T:System.Data.DataTable"/>.
            </summary>
            <exception cref="T:DBHelper.DataException.BadObjectPropertyAccess">
            Instance becomes bad while property being accessed.
            </exception>
        </member>
        <member name="P:DBHelper.DBRelation.ChildColumns">
            <summary>
            Returns <see cref="T:System.Data.DataColumn"/> of child keys.
            </summary>
            <exception cref="T:DBHelper.DataException.BadObjectPropertyAccess">
            Instance becomes bad while property being accessed.
            </exception>
        </member>
        <member name="P:DBHelper.DBRelation.ChildKey">
            <summary>
            Returns child <see cref="T:DBHelper.DBKey"/>.
            </summary>
            <exception cref="T:DBHelper.DataException.BadObjectPropertyAccess">
            Instance becomes bad while property being accessed.
            </exception>
        </member>
        <member name="P:DBHelper.DBRelation.ChildTableHelper">
            <summary>
            Returns instance of child table helper.
            </summary>
        </member>
        <member name="P:DBHelper.DBRelation.ChildTable">
            <summary>
            Returns child <see cref="T:System.Data.DataTable"/>.
            </summary>
            <exception cref="T:DBHelper.DataException.BadObjectPropertyAccess">
            Instance becomes bad while property being accessed.
            </exception>
        </member>
        <member name="P:DBHelper.DBRelation.RelationName">
            <summary>
            Specifies the relationship name.
            </summary>
            <exception cref="T:DBHelper.DataException.BadObjectPropertyAccess">
            Instance becomes bad while property being accessed.
            </exception>
        </member>
        <member name="T:DBHelper.DBRelationCollection">
            <summary>
            Class that groups a number of <see cref="T:DBHelper.DBRelation"/> instances.
            </summary>
        </member>
        <member name="M:DBHelper.DBRelationCollection.#ctor">
            <summary>
            Initialize a new instance of <see cref="T:DBHelper.DBRelationCollection"/>.
            </summary>
        </member>
        <member name="M:DBHelper.DBRelationCollection.Add(DBHelper.DBRelation)">
            <summary>
            Adds a <see cref="T:DBHelper.DBRelation"/> to <see cref="T:DBHelper.DBRelationCollection"/>.
            </summary>
            <param name="objRelation">The <see cref="T:DBHelper.DBRelation"/> instance to been added
            to collection.</param>
            <exception cref="T:System.ArgumentNullException">
            The <i>objRelation</i> parameter is null.
            </exception>
            <exception cref="T:DBHelper.DataException.CaseLocaleMismatch">
            Case sensitivity and locale between parent table and
            child table is mismatched.
            </exception>
            <exception cref="T:DBHelper.DataException.DuplicateNameException">
            The collection already has a relation with the specified name. 
            (The comparison is not case sensitive.)
            </exception>
        </member>
        <member name="M:DBHelper.DBRelationCollection.Add(DBHelper.ICommonDBAccess,DBHelper.ICommonDBAccess,System.Data.DataColumn,System.Data.DataColumn)">
            <summary>
            Create a new instance of <see cref="T:DBHelper.DBRelation"/> with the specified parent and
            child storage and parent and child column, and adds to collection.
            </summary>
            <param name="itcParent">The parent storage instance.</param>
            <param name="itcChild">The child storage instance.</param>
            <param name="colParent">Parent column in relation.</param>
            <param name="colChild">Child column in relation.</param>
            <returns>The created <see cref="T:DBHelper.DBRelation"/>.</returns>
            <remarks>
            Created relation name is empty string.
            </remarks>
            <exception cref="T:DBHelper.DataException.CaseLocaleMismatch">
            Case sensitivity and locale between parent table and
            child table is mismatched.
            </exception>
            <exception cref="T:DBHelper.DataException.DuplicateNameException">
            The collection already has a relation with the specified name. 
            (The comparison is not case sensitive.)
            </exception>
        </member>
        <member name="M:DBHelper.DBRelationCollection.Add(DBHelper.ICommonDBAccess,DBHelper.ICommonDBAccess,System.Data.DataColumn[],System.Data.DataColumn[])">
            <summary>
            Create a new instance of <see cref="T:DBHelper.DBRelation"/> with the specified parent and
            child storage and parent and child columns, and adds to collection.
            </summary>
            <param name="itcParent">The parent storage instance.</param>
            <param name="itcChild">The child storage instance.</param>
            <param name="acolParent">An array of parent columns in relation.</param>
            <param name="acolChild">An array of child columns in relation.</param>
            <returns>The created <see cref="T:DBHelper.DBRelation"/>.</returns>
            <remarks>
            Created relation name is empty string.
            </remarks>
            <exception cref="T:DBHelper.DataException.CaseLocaleMismatch">
            Case sensitivity and locale between parent table and
            child table is mismatched.
            </exception>
            <exception cref="T:DBHelper.DataException.DuplicateNameException">
            The collection already has a relation with the specified name. 
            (The comparison is not case sensitive.)
            </exception>
        </member>
        <member name="M:DBHelper.DBRelationCollection.Add(System.String,DBHelper.ICommonDBAccess,DBHelper.ICommonDBAccess,System.Data.DataColumn,System.Data.DataColumn)">
            <summary>
            Create a new instance of <see cref="T:DBHelper.DBRelation"/> with the specified relation name, 
            parent and child storage and parent and child column, and adds to collection.
            </summary>
            <param name="strName">The relation name.</param>
            <param name="itcParent">The parent storage instance.</param>
            <param name="itcChild">The child storage instance.</param>
            <param name="colParent">Parent column in relation.</param>
            <param name="colChild">Child column in relation.</param>
            <returns>The created <see cref="T:DBHelper.DBRelation"/>.</returns>
            <exception cref="T:DBHelper.DataException.CaseLocaleMismatch">
            Case sensitivity and locale between parent table and
            child table is mismatched.
            </exception>
            <exception cref="T:DBHelper.DataException.DuplicateNameException">
            The collection already has a relation with the specified name. 
            (The comparison is not case sensitive.)
            </exception>
        </member>
        <member name="M:DBHelper.DBRelationCollection.Add(System.String,DBHelper.ICommonDBAccess,DBHelper.ICommonDBAccess,System.Data.DataColumn[],System.Data.DataColumn[])">
            <summary>
            Create a new instance of <see cref="T:DBHelper.DBRelation"/> with the specified relation name, 
            parent and child storage and parent and child columns, and adds to collection.
            </summary>
            <param name="strName">The relation name.</param>
            <param name="itcParent">The parent storage instance.</param>
            <param name="itcChild">The child storage instance.</param>
            <param name="acolParent">An array of parent columns in relation.</param>
            <param name="acolChild">An array of child columns in relation.</param>
            <returns>The created <see cref="T:DBHelper.DBRelation"/>.</returns>
            <exception cref="T:DBHelper.DataException.CaseLocaleMismatch">
            Case sensitivity and locale between parent table and
            child table is mismatched.
            </exception>
            <exception cref="T:DBHelper.DataException.DuplicateNameException">
            The collection already has a relation with the specified name. 
            (The comparison is not case sensitive.)
            </exception>
        </member>
        <member name="M:DBHelper.DBRelationCollection.Add(System.String,DBHelper.ICommonDBAccess,DBHelper.ICommonDBAccess,System.Data.DataColumn,System.Data.DataColumn,System.Boolean)">
            <summary>
            Create a new instance of <see cref="T:DBHelper.DBRelation"/> with the specified relation name, 
            parent and child storage, parent and child column and value specifies whether to create constraints,
            and adds to collection.
            </summary>
            <param name="strName">The relation name.</param>
            <param name="itcParent">The parent storage instance.</param>
            <param name="itcChild">The child storage instance.</param>
            <param name="colParent">Parent column in relation.</param>
            <param name="colChild">Child column in relation.</param>
            <param name="bCreateConstraints">True if creates constraints, otherwise False.</param>
            <returns>The created <see cref="T:DBHelper.DBRelation"/>.</returns>
            <exception cref="T:DBHelper.DataException.CaseLocaleMismatch">
            Case sensitivity and locale between parent table and
            child table is mismatched.
            </exception>
            <exception cref="T:DBHelper.DataException.DuplicateNameException">
            The collection already has a relation with the specified name. 
            (The comparison is not case sensitive.)
            </exception>
        </member>
        <member name="M:DBHelper.DBRelationCollection.Add(System.String,DBHelper.ICommonDBAccess,DBHelper.ICommonDBAccess,System.Data.DataColumn[],System.Data.DataColumn[],System.Boolean)">
            <summary>
            Create a new instance of <see cref="T:DBHelper.DBRelation"/> with the specified relation name, 
            parent and child storage, parent and child columns and value specifies whether to create constraints,
            and adds to collection.
            </summary>
            <param name="strName">The relation name.</param>
            <param name="itcParent">The parent storage instance.</param>
            <param name="itcChild">The child storage instance.</param>
            <param name="acolParent">An array of parent columns in relation.</param>
            <param name="acolChild">An array of child columns in relation.</param>
            <param name="bCreateConstraints">True if creates constraints, otherwise False.</param>
            <returns>The created <see cref="T:DBHelper.DBRelation"/>.</returns>
            <exception cref="T:DBHelper.DataException.CaseLocaleMismatch">
            Case sensitivity and locale between parent table and
            child table is mismatched.
            </exception>
            <exception cref="T:DBHelper.DataException.DuplicateNameException">
            The collection already has a relation with the specified name. 
            (The comparison is not case sensitive.)
            </exception>
        </member>
        <member name="M:DBHelper.DBRelationCollection.AddCore(DBHelper.DBRelation)">
            <summary>
            Performs verification on the relation.
            </summary>
            <param name="objRelation">The relation to be verified.</param>
            <exception cref="T:System.ArgumentNullException">
            <i>objRelation</i> parameter is null.
            </exception>
            <exception cref="T:DBHelper.DataException.CaseLocaleMismatch">
            The case sensitivity and locale between parent table and
            child table is mismatched.
            </exception>
        </member>
        <member name="M:DBHelper.DBRelationCollection.AddRange(DBHelper.DBRelation[])">
            <summary>
            Adds an array of <see cref="T:DBHelper.DBRelation"/> to collection.
            </summary>
            <param name="aobjRelation">An array of relations.</param>
        </member>
        <member name="M:DBHelper.DBRelationCollection.Remove(DBHelper.DBRelation)">
            <summary>
            Remove a <see cref="T:DBHelper.DBRelation"/> from collection.
            </summary>
            <param name="objRelation">The relation to remove.</param>
            <exception cref="T:System.ArgumentNullException">
            <i>objRelation</i> parameter is null.
            </exception>
        </member>
        <member name="M:DBHelper.DBRelationCollection.Remove(System.String)">
            <summary>
            Remove a <see cref="T:DBHelper.DBRelation"/> with the specified name from collection.
            </summary>
            <param name="strName">The relation name.</param>
            <exception cref="T:DBHelper.DataException.RelationNotInTheCollection">
            Relation is not found in collection.
            </exception>
        </member>
        <member name="M:DBHelper.DBRelationCollection.RemoveAt(System.Int32)">
            <summary>
            Remove a <see cref="T:DBHelper.DBRelation"/> with the specified index from collection.
            </summary>
            <param name="iIndex">The relation index.</param>
            <exception cref="T:DBHelper.DataException.RelationOutOfRange">
            The specified index is out of range of collection.
            </exception>
        </member>
        <member name="M:DBHelper.DBRelationCollection.RemoveCore(DBHelper.DBRelation)">
            <summary>
            Verifies the <see cref="T:DBHelper.DBRelation"/> instance.
            </summary>
            <param name="objRelation">The relation to verify.</param>
            <exception cref="T:System.ArgumentNullException">
            <i>objRelation</i> parameter is null.
            </exception>
        </member>
        <member name="M:DBHelper.DBRelationCollection.Clear">
            <summary>
            Clears the collection.
            </summary>
        </member>
        <member name="M:DBHelper.DBRelationCollection.IndexOf(DBHelper.DBRelation)">
            <summary>
            Get the index of the specified <see cref="T:DBHelper.DBRelation"/> object.
            </summary>
            <param name="objRelation">The relation to search for.</param>
            <returns>The 0-based index of the relation, or -1 if the relation 
            isn't found in the collection.</returns>
        </member>
        <member name="M:DBHelper.DBRelationCollection.IndexOf(System.String)">
            <summary>
            Get the index of <see cref="T:DBHelper.DBRelation"/> with the specified name.
            </summary>
            <param name="strRelationName">The relation name to search for.</param>
            <returns>The 0-based index of the relation, or -1 if the relation 
            isn't found in the collection.</returns>
            <remarks>
            Comparison is case-insensitive.
            </remarks>
        </member>
        <member name="M:DBHelper.DBRelationCollection.InternalIndexOf(System.String)">
            <summary>
            Get the index of <see cref="T:DBHelper.DBRelation"/> with the specified name.
            </summary>
            <param name="strName">The relation name to search for.</param>
            <returns>The 0-based index of the relation, or -1 if the relation 
            isn't found in the collection, or -2 if 2 or more relations with the same name
            are found. </returns>
            <remarks>
            Comparison is case-insensitive.
            </remarks>
        </member>
        <member name="M:DBHelper.DBRelationCollection.Contains(System.String)">
            <summary>
            Checks whether collection contains the specified relation name.
            </summary>
            <param name="strName">The relation name to search for.</param>
            <returns>True if collection contains the relation, otherwise False.</returns>
            <remarks>
            Comparison is case-insensitive.
            </remarks>
        </member>
        <member name="M:DBHelper.DBRelationCollection.Contains(System.String,System.Boolean)">
            <summary>
            Checks whether the collection contains the specified relation name
            with a value specifies the checking is case sensitive or insensitive.
            </summary>
            <param name="strName">The relation name to search for.</param>
            <param name="bCaseSensitive">Value specifies checking is case sensitive or 
            insensitive.</param>
            <returns>True if collection contains the relation ortherwise False.</returns>
            <remarks>
            If 2 or more relations with the same name (case insensitive) are found,
            False is returned.
            </remarks>
        </member>
        <member name="P:DBHelper.DBRelationCollection.Item(System.Int32)">
            <summary>
            Gets the <see cref="T:DBHelper.DBRelation"/> object with the specified index.
            </summary>
        </member>
        <member name="P:DBHelper.DBRelationCollection.Item(System.String)">
            <summary>
            Gets the <see cref="T:DBHelper.DBRelation"/> object with the specified relation name.
            </summary>
        </member>
        <member name="T:DBHelper.DBTypeInfo">
            <summary>
            This class consists of static variables which holding useful info about
            database type and .NET type matching.
            </summary>
        </member>
        <member name="M:DBHelper.DBTypeInfo.#ctor">
            <summary>
            Private constructor which prevents <see cref="T:DBHelper.DBTypeInfo"/>
            from been instanced.
            </summary>
        </member>
        <member name="M:DBHelper.DBTypeInfo.#cctor">
            <summary>
            Static constructor which perform static initialization.
            </summary>
        </member>
        <member name="M:DBHelper.DBTypeInfo.InitTypeSqlTypeTable">
            <summary>
            Creates and initializes the TypeToSqlType sorted list, which is used
            to determine the .NET Sqltype for a given SQLServer DataType.
            </summary>
        </member>
        <member name="M:DBHelper.DBTypeInfo.InitTypeSqlDbTypeTable">
            <summary>
            Creates and initializes the TypeToSqlDbType sorted list, which is used
            to determine the SqlDbType type for a given SQLServer DataType.
            </summary>
        </member>
        <member name="M:DBHelper.DBTypeInfo.InitTypeNETTypeTable">
            <summary>
            Creates and initializes the TypeToNETType sorted list, which is used
            to determine the .NET Type for a given SQLServer DataType.
            </summary>
        </member>
        <member name="P:DBHelper.DBTypeInfo.TypeToSqlType">
            <summary>
            Returns TypeToSqlType sorted list.
            </summary>
        </member>
        <member name="P:DBHelper.DBTypeInfo.TypeToSqlDbType">
            <summary>
            Returns TypeToSqlDbType sorted list.
            </summary>
        </member>
        <member name="P:DBHelper.DBTypeInfo.TypeToNETType">
            <summary>
            Returns TypeToNetType sorted list.
            </summary>
        </member>
        <member name="T:DBHelper.Field">
            <summary>
            class that represents a table field. Used to store field information.
            </summary>
            <remarks>Implements the IComparable interface for the fieldsort based on type.</remarks>
        </member>
        <member name="M:DBHelper.Field.#ctor(System.String)">
            <summary>
            Initializes a new instance of <see cref="T:DBHelper.Field"/> with the specified
            field name.
            </summary>
            <param name="strFieldName">Name of field in a table.</param>
        </member>
        <member name="M:DBHelper.Field.CompareTo(System.Object)">
            <summary>
            Implementation of the CompareTo method of the IComparable interface.
            </summary>
            <param name="objToCompareTo">Object of type <see cref="T:DBHelper.Field"/> to compare 
            the current instance with.</param>
            <returns>-1 if this.DataType is less than the DataType of <i>objToCompareTo</i>
            0, if this.DataType is equal to <i>objToCompareTo</i>.DataType
            1, if this.DataType is greater than <i>objToCompareTo</i>.DataType </returns>
            <remarks>
            Comparison is string compare, e.g. <i>int</i> is less than <i>smallint</i>.
            </remarks>
        </member>
        <member name="M:DBHelper.Field.CheckIfNullValueCheckIsNeeded">
            <summary>
            Returns true when the field requires a null value check in the SqlParameter creation code, so the
            code emitters have to emit a Null value check.
            </summary>
            <returns>True if the field requires a null value check, otherwise False. It will only return True when
            the field is nullable AND the field is of a type which requires a null value check in the SqlParameter
            creation code.</returns>
        </member>
        <member name="M:DBHelper.Field.GetFieldTypeAsSqlType">
            <summary>
            Returns the type of the field as a Sqltype, like 'SqlDecimal'.
            </summary>
            <returns>SqlType version of the field's type.</returns>
        </member>
        <member name="M:DBHelper.Field.GetFieldTypeAsSqlDbType">
            <summary>
            Returns the type of the field as a SqlDbType, like SqlDbType.Decimal.
            </summary>
            <returns>SqlDbType version of the field's type.</returns>
        </member>
        <member name="M:DBHelper.Field.GetFieldTypeAsNETType">
            <summary>
            Returns the type of the field as a .NET type, like 'System.Decimal'.
            </summary>
            <returns>.NET version of the field's type.</returns>
        </member>
        <member name="M:DBHelper.Field.GetFieldNetTypeDefaultValue">
            <summary>
            Returns the default value of this field in .NET type.
            </summary>
            <returns>Default value in .NET Type.</returns>
        </member>
        <member name="P:DBHelper.Field.FieldName">
            <summary>
            Returns field name.
            </summary>
        </member>
        <member name="P:DBHelper.Field.IsExcluded">
            <summary>
            Specifies whether this field is excluded.
            </summary>
        </member>
        <member name="P:DBHelper.Field.TypeToSqlType">
            <summary>
            Sets the TypeToSqlType sorted list. <seealso cref="T:DBHelper.DBTypeInfo"/>
            </summary>
        </member>
        <member name="P:DBHelper.Field.TypeToSqlDbType">
            <summary>
            Sets the TypeToSqlDbType sorted list. <seealso cref="T:DBHelper.DBTypeInfo"/>
            </summary>
        </member>
        <member name="P:DBHelper.Field.TypeToNETType">
            <summary>
            Sets the TypeToNETType sorted list. <seealso cref="T:DBHelper.DBTypeInfo"/>
            </summary>
        </member>
        <member name="P:DBHelper.Field.DataType">
            <summary>
            Specifies the data type of this field.
            </summary>
        </member>
        <member name="P:DBHelper.Field.OrdinalPosition">
            <summary>
            Specifies the ordinal position of this field.
            </summary>
        </member>
        <member name="P:DBHelper.Field.Length">
            <summary>
            Specifies the field's data length.
            </summary>
        </member>
        <member name="P:DBHelper.Field.Precision">
            <summary>
            Specifies the field's precision.
            </summary>
        </member>
        <member name="P:DBHelper.Field.Scale">
            <summary>
            Specifies the field's scale.
            </summary>
        </member>
        <member name="P:DBHelper.Field.IsComputed">
            <summary>
            Specifies whether the field is computed.
            </summary>
        </member>
        <member name="P:DBHelper.Field.IsIdentity">
            <summary>
            Specifies whether the field is identity field.
            </summary>
        </member>
        <member name="P:DBHelper.Field.IsRowGUIDColumn">
            <summary>
            Specifies whether the field is GUID column.
            </summary>
        </member>
        <member name="P:DBHelper.Field.IsForeignKey">
            <summary>
            Specifies whether the field is foreign key.
            </summary>
        </member>
        <member name="P:DBHelper.Field.IsPrimaryKey">
            <summary>
            Specifies whether the field is primary key.
            </summary>
        </member>
        <member name="P:DBHelper.Field.IsNullable">
            <summary>
            Specifies whether the field is nullable.
            </summary>
        </member>
        <member name="P:DBHelper.Field.HasUniqueConstraint">
            <summary>
            Specifies whether the field has unique constraint.
            </summary>
        </member>
        <member name="P:DBHelper.Field.IsTimeStamp">
            <summary>
            True if the field data type is 'TimeStamp' otherwise False.
            </summary>
        </member>
        <member name="P:DBHelper.Field.DefaultValue">
            <summary>
            Specifies the field's default value.
            </summary>
        </member>
        <member name="T:DBHelper.IConnectionProvider">
            <summary>
            Provides a general interface of methods and properties for Connection Provider.
            </summary>
        </member>
        <member name="M:DBHelper.IConnectionProvider.OpenConnection">
            <summary>
            Opens a database connection.
            </summary>
            <returns>True if succeeded.</returns>
        </member>
        <member name="M:DBHelper.IConnectionProvider.CloseConnection">
            <summary>
            Closes a database connection.
            </summary>
            <returns>True if succeeded.</returns>
        </member>
        <member name="P:DBHelper.IConnectionProvider.DBConnection">
            <summary>
            Return a database connection.
            </summary>
        </member>
        <member name="P:DBHelper.IConnectionProvider.ConnectionString">
            <summary>
            Sets a database connection string.
            </summary>
        </member>
        <member name="T:DBHelper.InternalDataComparationBase">
            <summary>
            Class that consists of useful comparison methods used by data operation.
            </summary>
        </member>
        <member name="M:DBHelper.InternalDataComparationBase.NamesEqual(System.String,System.String,System.Boolean,System.Globalization.CultureInfo)">
            <summary>
            Compares 2 strings.
            </summary>
            <param name="s1">First string to compare with.</param>
            <param name="s2">Second string to compare with.</param>
            <param name="bCaseSensitive">Value specifies whether comparison is case sensitive.</param>
            <param name="locale">The culture info.</param>
            <returns>If comparison is case sensitive, 1 is returned if 2 strings are same, otherwise 0
            is returned. If comparison is case insensitive, 1 is return if 2 strings are same exactly
            (all case are same), -1 is return if 2 strings are same (not all case are same), and
            0 is returned if 2 strings are not same.</returns>
        </member>
        <member name="T:DBHelper.SqlClient.SqlConnectionProvider">
            <summary>
            Provides a <see cref="T:System.Data.SqlClient.SqlConnection"/> object which can 
            be shared among data-access tier objects to provide a way to do ADO.NET transaction 
            coding without the hassling with <see cref="T:System.Data.SqlClient.SqlConnection"/> objects
            on a high level.
            </summary>
        </member>
        <member name="M:DBHelper.SqlClient.SqlConnectionProvider.#ctor">
            <summary>
            Initializes a new instance of <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/>.
            </summary>
        </member>
        <member name="M:DBHelper.SqlClient.SqlConnectionProvider.Dispose">
            <summary>
            Implements the IDispose' method Dispose.
            </summary>
        </member>
        <member name="M:DBHelper.SqlClient.SqlConnectionProvider.Dispose(System.Boolean)">
            <summary>
            Implements the Dispose functionality.
            </summary>
        </member>
        <member name="M:DBHelper.SqlClient.SqlConnectionProvider.InitClass">
            <summary>
            Initializes class members.
            </summary>
        </member>
        <member name="M:DBHelper.SqlClient.SqlConnectionProvider.OpenConnection">
            <summary>
            Opens the connection object.
            </summary>
            <returns>True, if succeeded, otherwise an exception is thrown.</returns>
            <exception cref="T:System.InvalidOperationException">
            Cannot open a connection without specifying a data source or server.<br/>
            or<br/>
            The connection is already open.<br/>
            </exception>
            <exception cref="T:System.Data.SqlClient.SqlException">
            A connection-level error occurred while opening the connection.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlConnectionProvider.BeginTransaction">
            <summary>
            Starts a new ADO.NET transaction using the open connection object of this class.
            </summary>
            <returns>True, if transaction is started correctly, otherwise an exception is thrown.</returns>
            <exception cref="T:System.InvalidOperationException">
            Transaction is already pending.<br/>
            or<br/>
            Connection is not open.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlConnectionProvider.BeginTransaction(System.Data.IsolationLevel)">
            <summary>
            Starts a new ADO.NET transaction using the open connection object of this class
            with the specified transaction locking behaviour.
            </summary>
            <param name="enuIso">Transaction locking behaviour for the connection.</param>
            <returns>True, if transaction is started correctly, otherwise an exception is thrown.</returns>
            <exception cref="T:System.InvalidOperationException">
            Transaction is already pending.<br/>
            or<br/>
            Connection is not open.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlConnectionProvider.BeginTransaction(System.String)">
            <summary>
            Starts a new ADO.NET transaction using the open connection object of this class
            with the specified transaction name.
            </summary>
            <param name="strTransactionName">Name of the transaction to start.</param>
            <returns>True, if transaction is started correctly, otherwise an exception is thrown.</returns>
            <exception cref="T:System.InvalidOperationException">
            Transaction is already pending.<br/>
            or<br/>
            Connection is not open.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlConnectionProvider.BeginTransaction(System.Data.IsolationLevel,System.String)">
            <summary>
            Starts a new ADO.NET transaction using the open connection object of this class
            with the specified transaction locking behaviour and transaction name.
            </summary>
            <param name="enuIso">Transaction locking behaviour for the connection.</param>
            <param name="strTransactionName">Name of the transaction to start.</param>
            <returns>True, if transaction is started correctly, otherwise an exception is thrown.</returns>
            <exception cref="T:System.InvalidOperationException">
            Transaction is already pending.<br/>
            or<br/>
            Connection is not open.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlConnectionProvider.CommitTransaction">
            <summary>
            Commits a pending transaction on the open connection object of this class.
            </summary>
            <returns>True, if commit was succesful, or an exception is thrown.</returns>
            <exception cref="T:System.InvalidOperationException">
            No transaction pending.<br/>
            or<br/>
            Connection is not open.
            </exception>
            <exception cref="T:System.Exception">
            An error occurred while trying to commit the transaction.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlConnectionProvider.RollbackTransaction">
            <summary>
            Rolls back a pending transaction on the open connection object of this class.
            </summary>
            <returns>True, if rollback was succesful, or an exception is thrown.</returns>
            <exception cref="T:System.InvalidOperationException">
            No transaction pending.<br/>
            or<br/>
            Connection is not open.
            </exception>
            <exception cref="T:System.Exception">
            An error occurred while trying to rollback the transaction.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlConnectionProvider.RollbackTransaction(System.String)">
            <summary>
            Rolls back a pending transaction on the open connection object of this class, 
            or rolls back to the savepoint with the given name. Savepoints are created with 
            <see cref="M:DBHelper.SqlClient.SqlConnectionProvider.SaveTransaction(System.String)"/>.
            </summary>
            <param name="strTransactionToRollback">Name of transaction to roll back. 
            Can be name of savepoint</param>
            <returns>True, if rollback was succesful, or an exception is thrown.</returns>
            <exception cref="T:System.ArgumentException">
            No transaction name is specified.
            </exception>
            <exception cref="T:System.InvalidOperationException">
            No transaction pending.<br/>
            or<br/>
            Connection is not open.
            </exception>
            <exception cref="T:System.Exception">
            An error occurred while trying to rollback the transaction.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlConnectionProvider.SaveTransaction(System.String)">
            <summary>
            Saves a pending transaction on the open connection object of this class to a 'savepoint'
            with the given name.
            When a rollback is issued, the caller can rollback to this savepoint or 
            roll back the complete transaction.
            </summary>
            <param name="strSavePointName">Name of the savepoint to store the current transaction under.</param>
            <returns>True, if save was succesful, or an exception is thrown.</returns>
            <exception cref="T:System.InvalidOperationException">
            No transaction pending.<br/>
            or<br/>
            Connection is not open.
            </exception>
            <exception cref="T:System.Exception">
            An error occurred while trying to save the transaction.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlConnectionProvider.CloseConnection">
            <summary>
            Closes the open connection. A pending transaction is aborted. 
            </summary>
            <returns>True, if close was succesful, False if connection was already closed, 
            or an exception is thrown when an error occurs</returns>
            <exception cref="T:System.Data.SqlClient.SqlException">
            A connection-level error occurred while closing the connection.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlConnectionProvider.CloseConnection(System.Boolean)">
            <summary>
            Closes the open connection. Depending on <i>bCommitPendingTransactions</i>, a pending
            transaction is commited, or aborted. 
            </summary>
            <param name="bCommitPendingTransaction">Flag for what to do when a transaction is still pending. 
            True will commit the current transaction, false will abort (rollback) the complete 
            current transaction.</param>
            <returns>True, if close was succesful, False if connection was already closed, or 
            an exception is thrown when an error occurs</returns>
            <exception cref="T:System.Data.SqlClient.SqlException">
            A connection-level error occurred while closing the connection.
            </exception>
        </member>
        <member name="P:DBHelper.SqlClient.SqlConnectionProvider.CurrentTransaction">
            <summary>
            Returns current transaction.
            </summary>
        </member>
        <member name="P:DBHelper.SqlClient.SqlConnectionProvider.IsTransactionPending">
            <summary>
            Returns a flag specifies whether transaction is pending.
            </summary>
        </member>
        <member name="P:DBHelper.SqlClient.SqlConnectionProvider.DBConnection">
            <summary>
            Returns connection object.
            </summary>
        </member>
        <member name="P:DBHelper.SqlClient.SqlConnectionProvider.ConnectionString">
            <summary>
            Sets the connection string.
            </summary>
        </member>
        <member name="T:DBHelper.SqlClient.SqlDataSetHelper">
            <summary>
            Convenient data access container to perform relational database opetation.
            </summary>
        </member>
        <member name="M:DBHelper.SqlClient.SqlDataSetHelper.#ctor">
            <summary>
            Initializes a new instance of <see cref="T:DBHelper.SqlClient.SqlDataSetHelper"/>.
            </summary>
        </member>
        <member name="M:DBHelper.SqlClient.SqlDataSetHelper.Dispose">
            <summary>
            Implements the IDispose' method Dispose.
            </summary>
        </member>
        <member name="M:DBHelper.SqlClient.SqlDataSetHelper.Dispose(System.Boolean)">
            <summary>
            Implements the Dispose functionality.
            </summary>
        </member>
        <member name="M:DBHelper.SqlClient.SqlDataSetHelper.FillParents(DBHelper.SqlClient.SqlTableHelper,System.String)">
            <summary>
            Retrieves all parent rows in all tables that are related by parent relationships.
            </summary>
            <remarks>
            The process starts from first table by retrieving rows based on some select criteria
            and then retriving its parent rows by following the defined parent relationships.
            </remarks>
            <param name="objFirstHelper">The first SqlTableHelper instance.</param>
            <param name="strSelectCriteria">The select criteria.</param>
            <example>
            This example will retrieves all child rows with "ParentID = 1" and then
            its related parent rows and grand rows into x_Child, x_Parent, and x_Grand tables
            respectively.
            <code>
            mobjGrandHelper = new SqlTableHelper("x_Grand");
            mobjParentHelper = new SqlTableHelper("x_Parent");
            mobjChildHelper = new SqlTableHelper("x_Child");            
                       
            mobjGrandHelper.MainConnectionProvider = mobjCnnProvider;
            mobjParentHelper.MainConnectionProvider = mobjCnnProvider;
            mobjChildHelper.MainConnectionProvider = mobjCnnProvider;
            mobjGrandHelper.Compile();
            mobjParentHelper.Compile();
            mobjChildHelper.Compile();
            
            mobjChildHelper.AddParentKeys(mobjParentHelper, new string[] {"ParentID"});
            mobjParentHelper.AddParentKeys(mobjGrandHelper, new string[] {"GrandID"});
            
            mobjGrandHelper.Data.Clear();
            mobjParentHelper.Data.Clear();
            mobjChildHelper.Data.Clear();
            
            SqlDataSetHelper.FillParents(mobjChildHelper, "ParentID = 1");
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlDataSetHelper.FillParentsRecur(DBHelper.DBRelation,System.Data.DataRow)">
            <summary>
            Retrieves parent rows based on the specified child row.
            </summary>
            <remarks>
            The process will retrieves all parent rows across a number of different
            tables as defined by parent relationships recursively.
            </remarks>
            <param name="objParentRel">The parent relationship to start with.</param>
            <param name="row">The specified child row.</param>
        </member>
        <member name="M:DBHelper.SqlClient.SqlDataSetHelper.FillChilds(DBHelper.SqlClient.SqlTableHelper,System.String)">
            <summary>
            Retrieves all child rows in all tables that are related by child relationships.
            </summary>
            <remarks>
            The process starts from first table by retrieving rows based on some select criteria
            and then retriving its child rows by following the defined child relationships.
            </remarks>
            <param name="objFirstHelper">The first SqlTableHelper instance.</param>
            <param name="strSelectCriteria">The select criteria.</param>
            <example>
            This example will retrieves all grand rows with "GrandID = 2" and then
            its related parent rows and child rows into x_Grand, x_Parent, and x_Child tables
            respectively.
            <code>
            mobjGrandHelper = new SqlTableHelper("x_Grand");
            mobjParentHelper = new SqlTableHelper("x_Parent");
            mobjChildHelper = new SqlTableHelper("x_Child");            
                
            mobjGrandHelper.MainConnectionProvider = mobjCnnProvider;
            mobjParentHelper.MainConnectionProvider = mobjCnnProvider;
            mobjChildHelper.MainConnectionProvider = mobjCnnProvider;
            mobjGrandHelper.Compile();
            mobjParentHelper.Compile();
            mobjChildHelper.Compile();
            
            mobjGrandHelper.AddForeignKeys(mobjParentHelper, new string[] {"GrandID"});
            mobjParentHelper.AddForeignKeys(mobjChildHelper, new string[] {"ParentID"});
            
            mobjGrandHelper.Data.Clear();
            mobjParentHelper.Data.Clear();
            mobjChildHelper.Data.Clear();
            
            SqlDataSetHelper.FillChilds(mobjGrandHelper, "GrandID = 2");
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlDataSetHelper.FillChildsRecur(DBHelper.DBRelation,System.Data.DataRow)">
            <summary>
            Retrieves child rows based on the specified parent row.
            </summary>
            <remarks>
            The process will retrieves all child rows across a number of different
            tables as defined by child relationships recursively.
            </remarks>
            <param name="objChildRel">The child relationship to start with.</param>
            <param name="row">The specified parent row.</param>
        </member>
        <member name="P:DBHelper.SqlClient.SqlDataSetHelper.SqlTableHelpers">
            <summary>
            Retrieves <see cref="T:DBHelper.SqlClient.SqlTableHelper"/> collection.
            </summary>
        </member>
        <member name="T:DBHelper.SqlClient.SqlDBInteractionBase">
            <summary>
            Abstract base class for Database Interaction classes using MS SQL.
            </summary>
        </member>
        <member name="F:DBHelper.SqlClient.SqlDBInteractionBase.mcnnMainConnection">
            <summary>
            An instance of connection.
            </summary>
        </member>
        <member name="F:DBHelper.SqlClient.SqlDBInteractionBase.mbMainConnectionIsCreatedLocal">
            <summary>
            Value specifies whether connection is created local.
            </summary>
        </member>
        <member name="F:DBHelper.SqlClient.SqlDBInteractionBase.mobjMainConnectionProvider">
            <summary>
            An instance of SQL connection provider.
            </summary>
        </member>
        <member name="M:DBHelper.SqlClient.SqlDBInteractionBase.#ctor">
            <summary>
            Initializes a new instance of <see cref="T:DBHelper.SqlClient.SqlDBInteractionBase"/>.
            </summary>
            <remarks>
            When first been initialized, local connection is created.
            </remarks>
        </member>
        <member name="M:DBHelper.SqlClient.SqlDBInteractionBase.InitClass">
            <summary>
            Initializes class members.
            </summary>
        </member>
        <member name="M:DBHelper.SqlClient.SqlDBInteractionBase.Dispose">
            <summary>
            Implements the IDispose' method Dispose.
            </summary>
        </member>
        <member name="M:DBHelper.SqlClient.SqlDBInteractionBase.Dispose(System.Boolean)">
            <summary>
            Implements the Dispose functionality.
            </summary>
        </member>
        <member name="P:DBHelper.SqlClient.SqlDBInteractionBase.MainConnectionProvider">
            <summary>
            Specifies the connection provider.
            </summary>
        </member>
        <member name="P:DBHelper.SqlClient.SqlDBInteractionBase.ConnectionString">
            <summary>
            Specifies the connection string.
            </summary>
        </member>
        <member name="T:DBHelper.SqlClient.SqlHelper">
            <summary>
            The SqlHelper class is intended to encapsulate high performance, scalable best practices for 
            common uses of SqlClient.
            </summary>
            <example>
            <code>
            objSqlHelper.MainConnectionProvider = mobjCnnProvider;
            mobjCnnProvider.OpenConnection();
            ds = objSqlHelper.ExecuteDataSet("GetOrders", 24, 36);
            mobjCnnProvider.CloseConnection();  
            iRetVal = objSqlHelper.ReturnValue;
            hstOutput = objSqlHelper.OutputValue;
            iAffected = objSqlHelper.RowsAffected;
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteNonQuery(System.Data.SqlClient.SqlConnection,System.Data.SqlClient.SqlTransaction,System.Data.CommandType,System.String,System.Data.SqlClient.SqlParameter[])">
            <summary>
            Execute a <see cref="T:System.Data.SqlClient.SqlCommand"/> (that returns no resultset) 
            against the specified <see cref="T:System.Data.SqlClient.SqlConnection"/> and specified 
            <see cref="T:System.Data.SqlClient.SqlTransaction"/> (if provided) using the 
            provided parameters.
            </summary>
            <param name="cnn">A valid SqlConnection</param>
            <param name="tra">A valid SqlTransaction</param>
            <param name="enuCommandType">The CommandType (stored procedure, text, etc.).</param>
            <param name="strCommandText">The stored procedure name or T-SQL command.</param>
            <param name="aCommandPar">An array of SqlParamters used to execute the command.</param>
            <returns>An int representing the number of rows affected by the command.</returns>
            <exception cref="T:System.ArgumentNullException">
            <i>cnn</i> parameter is not provided.
            </exception>
            <example>
            <code>
            int result = ExecuteNonQuery(cnn, tra, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteNonQuery(System.Data.CommandType,System.String)">
            <summary>
            Execute a <see cref="T:System.Data.SqlClient.SqlCommand"/> (that returns no resultset 
            and takes no parameters). 
            </summary>
            <remarks>
            This method uses connection provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> 
            object or internal connection.
            </remarks>
            <param name="enuCommandType">The CommandType (stored procedure, text, etc.).</param>
            <param name="strCommandText">The stored procedure name or T-SQL command.</param>
            <returns>An int representing the number of rows affected by the command.</returns>
            <example>
            <code>
            int result = ExecuteNonQuery(CommandType.StoredProcedure, "PublishOrders");
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteNonQuery(System.Data.CommandType,System.String,System.Data.SqlClient.SqlParameter[])">
            <summary>
            Execute a <see cref="T:System.Data.SqlClient.SqlCommand"/> (that returns no resultset) 
            using the provided parameters. 
            </summary>
            <remarks>
            This method uses connection provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> 
            object or internal connection.
            </remarks>
            <param name="enuCommandType">The CommandType (stored procedure, text, etc.).</param>
            <param name="strCommandText">The stored procedure name or T-SQL command.</param>
            <param name="aCommandPar">An array of SqlParamters used to execute the command.</param>
            <returns>An int representing the number of rows affected by the command.</returns>
            <example>
            <code>
            int result = ExecuteNonQuery(CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteNonQuery(System.String,System.Object[])">
            <summary>
            Execute a stored procedure via a <see cref="T:System.Data.SqlClient.SqlCommand"/> 
            (that returns no resultset)using the provided parameter values. This method 
            will query the database to discover the parameters for the stored procedure 
            (the first time each stored procedure is called), and assign the values based 
            on parameter order.
            </summary>
            <remarks>
            This method uses connection provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> 
            object or internal connection.
            </remarks>
            <param name="strSpName">The name of the stored procedure.</param>
            <param name="aobjParValues">An array of objects to be assigned as the input values 
            of the stored procedure.</param>
            <returns>An int representing the number of rows affected by the command.</returns>
            <example>
            <code>
            int result = ExecuteNonQuery("PublishOrders", 24, 36);
            </code>
            </example>
            <exception cref="T:System.ArgumentNullException">
            <i>strSpName</i> parameter is not provided.
            </exception>
            <exception cref="T:System.ArgumentException">
            Total of provided parameters' value is not same with total of input/inputouput parameters.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteDataset(System.Data.SqlClient.SqlConnection,System.Data.SqlClient.SqlTransaction,System.Data.CommandType,System.String,System.Data.SqlClient.SqlParameter[])">
            <summary>
            Execute a <see cref="T:System.Data.SqlClient.SqlCommand"/> (that returns a resultset) 
            against the specified <see cref="T:System.Data.SqlClient.SqlConnection"/> and specified 
            <see cref="T:System.Data.SqlClient.SqlTransaction"/> (if provided) using the 
            provided parameters.
            </summary>
            <param name="cnn">A valid SqlConnection.</param>
            <param name="tra">A valid SqlTransaction.</param>
            <param name="enuCommandType">The CommandType (stored procedure, text, etc.).</param>
            <param name="strCommandText">The stored procedure name or T-SQL command.</param>
            <param name="aCommandPar">An array of SqlParamters used to execute the command.</param>
            <returns>A dataset containing the resultset generated by the command.</returns>
            <exception cref="T:System.ArgumentNullException">
            <i>cnn</i> parameter is not provided.
            </exception>
            <example>
            <code>
            DataSet ds = ExecuteDataset(cnn, tra, CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24));
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteDataset(System.Data.CommandType,System.String)">
            <summary>
            Execute a <see cref="T:System.Data.SqlClient.SqlCommand"/> (that returns a resultset 
            and takes no parameters). 
            </summary>
            <remarks>
            This method uses connection provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> 
            object or internal connection.
            </remarks>
            <param name="enuCommandType">The CommandType (stored procedure, text, etc.).</param>
            <param name="strCommandText">The stored procedure name or T-SQL command.</param>
            <returns>A dataset containing the resultset generated by the command.</returns>
            <example>
            <code>
            DataSet ds = ExecuteDataset(CommandType.StoredProcedure, "GetOrders");
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteDataset(System.Data.CommandType,System.String,System.Data.SqlClient.SqlParameter[])">
            <summary>
            Execute a <see cref="T:System.Data.SqlClient.SqlCommand"/> (that returns a resultset) 
            using the provided parameters. 
            </summary>
            <remarks>
            This method uses connection provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> 
            object or internal connection.
            </remarks>
            <param name="enuCommandType">The CommandType (stored procedure, text, etc.).</param>
            <param name="strCommandText">The stored procedure name or T-SQL command.</param>
            <param name="aCommandPar">An array of SqlParamters used to execute the command.</param>
            <returns>A dataset containing the resultset generated by the command.</returns>
            <example>
            <code>
            DataSet ds = ExecuteDataset(CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteDataset(System.String,System.Object[])">
            <summary>
            Execute a stored procedure via a <see cref="T:System.Data.SqlClient.SqlCommand"/> 
            (that returns a resultset) using the provided parameter values. This method will 
            query the database to discover the parameters for the stored procedure (the first 
            time each stored procedure is called), and assign the values based on parameter order.
            </summary>
            <remarks>
            This method uses connection provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> 
            object or internal connection.
            </remarks>
            <param name="strSpName">The name of the stored procedure.</param>
            <param name="aobjParValues">An array of objects to be assigned 
            as the input values of the stored procedure.</param>
            <returns>A dataset containing the resultset generated by the command.</returns>
            <example>
            <code>
            DataSet ds = ExecuteDataset("GetOrders", 24, 36);
            </code>
            </example>
            <exception cref="T:System.ArgumentNullException">
            <i>strSpName</i> parameter is not provided.
            </exception>
            <exception cref="T:System.ArgumentException">
            Total of provided parameters' value is not same with total of input/inputouput parameters.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteReader(System.Data.SqlClient.SqlConnection,System.Data.SqlClient.SqlTransaction,System.Data.CommandType,System.String,System.Data.SqlClient.SqlParameter[],DBHelper.SqlClient.SqlHelper.SqlConnectionOwnership)">
            <summary>
            Create and prepare a <see cref="T:System.Data.SqlClient.SqlCommand"/>, and call 
            ExecuteReader with the appropriate CommandBehavior.
            </summary>
            <remarks>
            If we created and opened the connection, we want the connection to be closed 
            when the DataReader is closed.<br/>
            
            If the caller provided the connection, we want to leave it to them to manage.
            </remarks>
            <param name="cnn">A valid SqlConnection, on which to execute this command.</param>
            <param name="tra">A valid SqlTransaction, or 'null'.</param>
            <param name="enuCommandType">The enuCommandType (stored procedure, text, etc.).</param>
            <param name="strCommandText">The stored procedure name or T-SQL command.</param>
            <param name="aCommandPar">An array of SqlParameters to be associated with the command or 
            'null' if no parameters are required.</param>
            <param name="enuCnnOwnership">Indicates whether the <i>cnn</i> parameter was provided by the 
            caller, or created by SqlHelper.</param>
            <returns><see cref="T:System.Data.SqlClient.SqlDataReader"/> containing the results 
            of the command.</returns>
            <exception cref="T:System.ArgumentNullException">
            <i>cnn</i> parameter is not provided.
            </exception>
            <example>
            <code>
            SqlDataReader dtr = ExecuteReader(cnn, tra, CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24), SqlConnectionOwnership.Internal);
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteReader(System.Data.CommandType,System.String)">
            <summary>
            Execute a <see cref="T:System.Data.SqlClient.SqlCommand"/> (that returns a resultset 
            and takes no parameters). 
            </summary>
            <remarks>
            This method uses connection provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> 
            object or internal connection.
            </remarks>
            <param name="enuCommandType">The enuCommandType (stored procedure, text, etc.).</param>
            <param name="strCommandText">The stored procedure name or T-SQL command.</param>
            <returns>A <see cref="T:System.Data.SqlClient.SqlDataReader"/>containing 
            the resultset generated by the command.</returns>
            <example>
            <code>
            SqlDataReader dtr = ExecuteReader(CommandType.StoredProcedure, "GetOrders");
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteReader(System.Data.CommandType,System.String,System.Data.SqlClient.SqlParameter[])">
            <summary>
            Execute a <see cref="T:System.Data.SqlClient.SqlCommand"/> (that returns a resultset) 
            using the provided parameters.
            </summary>
            <remarks>
            This method uses connection provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> 
            object or internal connection.
            </remarks>
            <param name="enuCommandType">The enuCommandType (stored procedure, text, etc.).</param>
            <param name="strCommandText">The stored procedure name or T-SQL command.</param>
            <param name="aCommandPar">An array of SqlParamters used to execute the command.</param>
            <returns>A <see cref="T:System.Data.SqlClient.SqlDataReader"/> containing the resultset 
            generated by the command.</returns>
            <example>
            <code>
            SqlDataReader dtr = ExecuteReader(CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24));
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteReader(System.String,System.Object[])">
            <summary>
            Execute a stored procedure via a <see cref="T:System.Data.SqlClient.SqlCommand"/> 
            (that returns a resultset) using the provided parameter values.
            This method will query the database to discover the parameters for the stored procedure 
            (the first time each stored procedure is called), and assign the values based on parameter order.
            </summary>
            <remarks>
            This method uses connection provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> 
            object or internal connection. Besides, this method provides no access to output parameters 
            or the stored procedure's return value parameter.
            </remarks>
            <param name="strSpName">The name of the stored procedure.</param>
            <param name="aobjParValues">An array of objects to be assigned as the input values of the
             stored procedure.</param>
            <returns>A <see cref="T:System.Data.SqlClient.SqlDataReader"/> containing the resultset 
            generated by the command.</returns>
            <example>
            <code>
            SqlDataReader dtr = ExecuteReader("GetOrders", 24, 36);
            </code>
            </example>
            <exception cref="T:System.ArgumentNullException">
            <i>strSpName</i> parameter is not provided.
            </exception>
            <exception cref="T:System.ArgumentException">
            Total of provided parameters' value is not same with total of input/inputouput parameters.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteScalar(System.Data.SqlClient.SqlConnection,System.Data.SqlClient.SqlTransaction,System.Data.CommandType,System.String,System.Data.SqlClient.SqlParameter[])">
            <summary>
            Execute a <see cref="T:System.Data.SqlClient.SqlCommand"/> (that returns a 1x1 resultset) 
            against the specified <see cref="T:System.Data.SqlClient.SqlConnection"/> 
            and specified <see cref="T:System.Data.SqlClient.SqlTransaction"/> (if provided) 
            using the provided parameters.
            </summary>
            <param name="cnn">A valid SqlConnection.</param>
            <param name="tra">A valid SqlTransaction.</param>
            <param name="enuCommandType">The enuCommandType (stored procedure, text, etc.).</param>
            <param name="strCommandText">The stored procedure name or T-SQL command.</param>
            <param name="aCommandPar">An array of SqlParamters used to execute the command.</param>
            <returns>An object containing the value in the 1x1 resultset generated by the command.</returns>
            <exception cref="T:System.ArgumentNullException">
            <i>cnn</i> parameter is not provided.
            </exception>
            <example>
            <code>
            int orderCount = (int)ExecuteScalar(cnn, tra, CommandType.StoredProcedure, "GetOrderCount", new SqlParameter("@prodid", 24));
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteScalar(System.Data.CommandType,System.String)">
            <summary>
            Execute a <see cref="T:System.Data.SqlClient.SqlCommand"/> (that returns a 1x1 resultset 
            and takes no parameters). 
            </summary>
            <remarks>
            This method uses connection provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> 
            object or internal connection.
            </remarks>
            <param name="enuCommandType">The enuCommandType (stored procedure, text, etc.).</param>
            <param name="strCommandText">The stored procedure name or T-SQL command.</param>
            <returns>An object containing the value in the 1x1 resultset generated by the command.</returns>
            <example>
            <code>
            int orderCount = (int)ExecuteScalar(CommandType.StoredProcedure, "GetOrderCount");
            </code>
            </example> 
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteScalar(System.Data.CommandType,System.String,System.Data.SqlClient.SqlParameter[])">
            <summary>
            Execute a <see cref="T:System.Data.SqlClient.SqlCommand"/> (that returns a 1x1 resultset) 
            using the provided parameters. 
            </summary>
            <remarks>
            This method uses connection provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> 
            object or internal connection.
            </remarks>
            <param name="enuCommandType">The CommandType (stored procedure, text, etc.).</param>
            <param name="strCommandText">The stored procedure name or T-SQL command.</param>
            <param name="aCommandPar">An array of SqlParamters used to execute the command.</param>
            <returns>An object containing the value in the 1x1 resultset generated by the command.</returns>
            <example>
            <code>
            int orderCount = (int)ExecuteScalar(CommandType.StoredProcedure, "GetOrderCount", new SqlParameter("@prodid", 24));
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteScalar(System.String,System.Object[])">
            <summary>
            Execute a stored procedure via a <see cref="T:System.Data.SqlClient.SqlCommand"/>
            (that returns a 1x1 resultset) using the provided parameter values.
            This method will query the database to discover the parameters for the stored procedure 
            (the first time each stored procedure is called), and assign the values based on parameter order.
            </summary>
            <remarks>
            This method uses connection provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> 
            object or internal connection.
            </remarks>
            <param name="strSpName">The name of the stored procedure.</param>
            <param name="aobjParValues">An array of objects to be assigned as the input values 
            of the stored procedure.</param>
            <returns>An object containing the value in the 1x1 resultset generated by the command.</returns>
            <example>
            <code>
            int orderCount = (int)ExecuteScalar("GetOrderCount", 24, 36);
            </code>
            </example>
            <exception cref="T:System.ArgumentNullException">
            <i>strSpName</i> parameter is not provided.
            </exception>
            <exception cref="T:System.ArgumentException">
            Total of provided parameters' value is not same with total of input/inputouput parameters.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteXmlReader(System.Data.SqlClient.SqlConnection,System.Data.SqlClient.SqlTransaction,System.Data.CommandType,System.String,System.Data.SqlClient.SqlParameter[])">
            <summary>
            Execute a <see cref="T:System.Data.SqlClient.SqlCommand"/> (that returns a resultset) 
            against the specified <see cref="T:System.Data.SqlClient.SqlConnection"/>
            and specified <see cref="T:System.Data.SqlClient.SqlTransaction"/> (if provided)
            using the provided parameters.
            </summary>
            <param name="cnn">A valid SqlConnection.</param>
            <param name="tra">A valid SqlTransaction.</param>
            <param name="enuCommandType">The CommandType (stored procedure, text, etc.).</param>
            <param name="strCommandText">The stored procedure name or T-SQL command using "FOR XML AUTO".</param>
            <param name="aCommandPar">An array of SqlParamters used to execute the command.</param>
            <returns>An <see cref="T:System.Xml.XmlReader"/>XmlReader containing the resultset 
            generated by the command.</returns>
            <exception cref="T:System.ArgumentNullException">
            <i>cnn</i> parameter is not provided.
            </exception>
            <example>
            <code>
            XmlReader xmlr = ExecuteXmlReader(cnn, tra, CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24));
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteXmlReader(System.Data.CommandType,System.String)">
            <summary>
            Execute a <see cref="T:System.Data.SqlClient.SqlCommand"/> (that returns a resultset 
            and takes no parameters). 
            </summary>
            <remarks>
            This method can be called by using <see cref="T:System.Data.SqlClient.SqlConnection"/> 
            provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> only, i.e. external
            connection.
            </remarks>
            <param name="enuCommandType">The CommandType (stored procedure, text, etc.).</param>
            <param name="strCommandText">The stored procedure name or T-SQL command using "FOR XML AUTO".</param>
            <returns>An <see cref="T:System.Xml.XmlReader"/> containing the resultset generated 
            by the command.</returns>
            <exception cref="T:System.InvalidOperationException">
            This method is called with internal connection.
            </exception>
            <example>
            <code>
            XmlReader xmlr = ExecuteXmlReader(CommandType.StoredProcedure, "GetOrders");
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteXmlReader(System.Data.CommandType,System.String,System.Data.SqlClient.SqlParameter[])">
            <summary>
            Execute a <see cref="T:System.Data.SqlClient.SqlCommand"/> (that returns a resultset) 
            using the provided parameters.
            </summary>
            <remarks>
            This method can be called by using <see cref="T:System.Data.SqlClient.SqlConnection"/> 
            provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> only, i.e. external
            connection.
            </remarks>
            <param name="enuCommandType">The enuCommandType (stored procedure, text, etc.).</param>
            <param name="strCommandText">The stored procedure name or T-SQL command.</param>
            <param name="aCommandPar">An array of SqlParamters used to execute the command.</param>
            <returns>An <see cref="T:System.Xml.XmlReader"/>containing the resultset generated 
            by the command.</returns>
            <exception cref="T:System.InvalidOperationException">
            This method is called with internal connection.
            </exception>
            <example>
            <code>
            XmlReader xmlr = ExecuteXmlReader(CommandType.StoredProcedure, "GetOrders", new SqlParameter("@prodid", 24));
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteXmlReader(System.String,System.Object[])">
            <summary>
            Execute a stored procedure via a <see cref="T:System.Data.SqlClient.SqlCommand"/>
            (that returns a resultset) using the provided parameter values.
            This method will query the database to discover the parameters for the stored procedure 
            (the first time each stored procedure is called), and assign the values based on parameter order.
            </summary>
            <remarks>
            This method can be called by using <see cref="T:System.Data.SqlClient.SqlConnection"/> 
            provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> only, i.e. external
            connection. Besides, this method provides no access to output parameters or the stored 
            procedure's return value parameter.
            </remarks>
            <param name="strSpName">The name of the stored procedure using "FOR XML AUTO".</param>
            <param name="aobjParValues">An array of objects to be assigned as the input values 
            of the stored procedure</param>
            <returns>An <see cref="T:System.Xml.XmlReader"/> containing the resultset generated 
            by the command</returns>
            <example>
            <code>
            XmlReader xmlr = ExecuteXmlReader("GetOrders", 24, 36);
            </code>
            </example>
            <exception cref="T:System.ArgumentNullException">
            <i>strSpName</i> parameter is not provided.
            </exception>
            <exception cref="T:System.ArgumentException">
            Total of provided parameters' value is not same with total of input/inputouput parameters.
            </exception>
            <exception cref="T:System.InvalidOperationException">
            This method is called with internal connection.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.FillDataset(System.Data.SqlClient.SqlConnection,System.Data.SqlClient.SqlTransaction,System.Data.CommandType,System.String,System.Data.DataSet,System.String[],System.Data.SqlClient.SqlParameter[])">
            <summary>
            Private helper method that execute a <see cref="T:System.Data.SqlClient.SqlCommand"/>
            (that returns a resultset) against the specified <see cref="T:System.Data.SqlClient.SqlConnection"/>
            and specified <see cref="T:System.Data.SqlClient.SqlTransaction"/>(if provided) using the 
            provided parameters.
            </summary>
            <param name="cnn">A valid SqlConnection.</param>
            <param name="tra">A valid SqlTransaction.</param>
            <param name="enuCommandType">The CommandType (stored procedure, text, etc.).</param>
            <param name="strCommandText">The stored procedure name or T-SQL cmd.</param>
            <param name="ds">A dataset which will contain the resultset generated by the command.</param>
            <param name="astrTableName">This array will be used to create table mappings allowing the 
            <see cref="T:System.Data.DataTable"/>s to be referenced
            by a user defined name (probably the actual table name).
            </param>
            <param name="aCommandPar">An array of SqlParamters used to execute the command.</param>
            <exception cref="T:System.ArgumentNullException">
            <i>cnn</i> parameter is not provided,<br/>
            or<br/>
            <i>ds</i> parameter is not provided.
            </exception>
            <exception cref="T:System.ArgumentException">
            Missing table names in <i>astrTableName</i> parameter.
            </exception>
            <example>
            <code>
            FillDataset(cnn, tra, CommandType.StoredProcedure, "GetOrders", ds, new string[] {"orders"}, new SqlParameter("@prodid", 24));
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.FillDataset(System.Data.CommandType,System.String,System.Data.DataSet,System.String[])">
            <summary>
            Execute a <see cref="T:System.Data.SqlClient.SqlCommand"/> (that returns a resultset 
            and takes no parameters). 
            </summary>
            <remarks>
            This method uses connection provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> 
            object or internal connection.
            </remarks>
            <param name="enuCommandType">The CommandType (stored procedure, text, etc.).</param>
            <param name="strCommandText">The stored procedure name or T-SQL command.</param>
            <param name="ds">A dataset which will contain the resultset generated by the command.</param>
            <param name="astrTableName">This array will be used to create table mappings allowing the 
            <see cref="T:System.Data.DataTable"/>s to be referenced by a user defined name 
            (probably the actual table name).
            </param>
            <exception cref="T:System.ArgumentNullException">
            <i>ds</i> parameter is not provided.
            </exception>
            <exception cref="T:System.ArgumentException">
            Missing table names in <i>astrTableName</i> parameter.
            </exception>
            <example>
            <code>
            FillDataset(CommandType.StoredProcedure, "GetOrders", ds, new string[] {"orders"});
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.FillDataset(System.Data.CommandType,System.String,System.Data.DataSet,System.String[],System.Data.SqlClient.SqlParameter[])">
            <summary>
            Execute a <see cref="T:System.Data.SqlClient.SqlCommand"/> (that returns a resultset) 
            using the provided parameters.
            </summary>
            <remarks>
            This method uses connection provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> 
            object or internal connection.
            </remarks>
            <param name="enuCommandType">The CommandType (stored procedure, text, etc.).</param>
            <param name="strCommandText">The stored procedure name or T-SQL command.</param>
            <param name="ds">A dataset which will contain the resultset generated by the command.</param>
            <param name="astrTableName">This array will be used to create table mappings allowing the 
            <see cref="T:System.Data.DataTable"/>s to be referenced by a user defined name 
            (probably the actual table name).
            </param>
            <param name="aCommandPar">An array of SqlParamters used to execute the command.</param>
            <exception cref="T:System.ArgumentNullException">
            <i>ds</i> parameter is not provided.
            </exception>
            <exception cref="T:System.ArgumentException">
            Missing table names in <i>astrTableName</i> parameter.
            </exception>
            <example>
            <code>
            FillDataset(CommandType.StoredProcedure, "GetOrders", ds, new string[] {"orders"}, new SqlParameter("@prodid", 24));
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.FillDataset(System.String,System.Data.DataSet,System.String[],System.Object[])">
            <summary>
            Execute a stored procedure via a <see cref="T:System.Data.SqlClient.SqlCommand"/>
            (that returns a resultset) using the provided parameter values.
            This method will query the database to discover the parameters for the stored procedure 
            (the first time each stored procedure is called), and assign the values based on parameter order.
            </summary>
            <remarks>
            This method uses connection provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> 
            object or internal connection.
            </remarks>
            <param name="strSpName">The name of the stored procedure.</param>
            <param name="ds">A dataset wich will contain the resultset generated by the command.</param>
            <param name="astrTableName">This array will be used to create table mappings allowing the 
            <see cref="T:System.Data.DataTable"/>s to be referenced by a user defined name 
            (probably the actual table name)
            </param>
            <param name="aobjParValues">An array of objects to be assigned as the input values of the 
            stored procedure</param>
            <exception cref="T:System.ArgumentNullException">
            <i>strSpName</i> parameter is not provided,<br/>
            or<br/>
            <i>ds</i> parameter is not provided.
            </exception>
            <exception cref="T:System.ArgumentException">
            Missing table names in <i>astrTableName</i> parameter.
            </exception>
            <exception cref="T:System.ArgumentException">
            Total of provided parameters' value is not same with total of input/inputouput parameters.
            </exception>
            <example>
            <code>
            FillDataset("GetOrders", ds, new string[] {"orders"}, 24, 36);
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.UpdateDataset(System.Data.SqlClient.SqlCommand,System.Data.SqlClient.SqlCommand,System.Data.SqlClient.SqlCommand,System.Data.DataSet,System.String)">
            <summary>
            Executes the respective command for each inserted, updated, or deleted row in the 
            <see cref="T:System.Data.DataSet"/>.
            </summary>
            <remarks>
            This method uses connection provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> 
            object or internal connection.
            </remarks>
            <param name="cmdInsert">A valid transact-SQL statement or stored procedure to insert 
            new records into the data source.</param>
            <param name="cmdDelete">A valid transact-SQL statement or stored procedure to delete 
            records from the data source.</param>
            <param name="cmdUpdate">A valid transact-SQL statement or stored procedure used to update 
            records in the data source.</param>
            <param name="ds">The DataSet used to update the data source.</param>
            <param name="strTableName">The DataTable used to update the data source.</param>
            <exception cref="T:System.ArgumentNullException">
            <i>cmdInsert</i> parameter is not provided,<br/>
            or<br/>
            <i>cmdDelete</i> parameter is not provided,<br/>
            or<br/>
            <i>cmdUpdate</i> parameter is not provided,<br/>
            or<br/>
            <i>strTableName</i> parameter is not provided.<br/>
            </exception>
            <example>
            <code>
            UpdateDataset(cmdInsert, cmdDelete, cmdUpdate, ds, "Order");
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.CreateCommand(System.String,System.String[])">
            <summary>
            Simplify the creation of a Sql command object by allowing
            a stored procedure and optional parameters to be provided
            </summary>
            This method can be called by using <see cref="T:System.Data.SqlClient.SqlConnection"/> 
            provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> only, i.e. external
            connection.
            <param name="strSpName">The name of the stored procedure.</param>
            <param name="astrSouceColumn">An array of string to be assigned as the source columns of the 
            stored procedure parameters (whether input or output).</param>
            <returns>A valid SqlCommand object.</returns>
            <exception cref="T:System.ArgumentException">
            <i>strSpName</i> parameter is not provided.
            </exception>
            <exception cref="T:System.InvalidOperationException">
            This method is called with internal connection.
            </exception>
            <example>
            <code>
            SqlCommand command = CreateCommand("AddCustomer", "CustomerID", "CustomerName");
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteNonQueryTypedParams(System.String,System.Data.DataRow)">
            <summary>
            Execute a stored procedure via a <see cref="T:System.Data.SqlClient.SqlCommand"/> 
            (that returns no resultset) using the <see cref="T:System.Data.DataRow"/> column values 
            as the stored procedure's parameters values.  
            This method will query the database to discover the parameters for the 
            stored procedure (the first time each stored procedure is called), and assign 
            the values based on row values.
            </summary>
            <remarks>
            Columns' name in data row must same with store procedure parameters' name exactly. <br/>
            This method uses connection provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> 
            object or internal connection.
            </remarks>
            <param name="strSpName">The name of the stored procedure.</param>
            <param name="row">The row used to hold the stored procedure's parameter values.</param>
            <returns>An int representing the number of rows affected by the command.</returns>
            <example>
            <code>
            int result = ExecuteNonQueryTypedParams("PublishOrders", rowData);
            </code>
            </example>
            <exception cref="T:System.ArgumentNullException">
            <i>strSpName</i> parameter is not provided.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteDatasetTypedParams(System.String,System.Data.DataRow)">
            <summary>
            Execute a stored procedure via a <see cref="T:System.Data.SqlClient.SqlCommand"/> 
            (that returns a resultset) using the <see cref="T:System.Data.DataRow"/> column values 
            as the store procedure's parameters values.
            This method will query the database to discover the parameters for the 
            stored procedure (the first time each stored procedure is called), and assign 
            the values based on row values.
            </summary>
            <remarks>
            Columns' name in data row must same with store procedure parameters' name exactly. <br/>
            This method uses connection provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> 
            object or internal connection.
            </remarks>
            <param name="strSpName">The name of the stored procedure.</param>
            <param name="row">The row used to hold the stored procedure's parameter values.</param>
            <returns>A dataset containing the resultset generated by the command.</returns>
            <example>
            <code>
            DataSet ds = ExecuteDatasetTypedParams("GetOrders", rowData);
            </code>
            </example>
            <exception cref="T:System.ArgumentNullException">
            <i>strSpName</i> parameter is not provided.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteReaderTypedParams(System.String,System.Data.DataRow)">
            <summary>
            Execute a stored procedure via a <see cref="T:System.Data.SqlClient.SqlCommand"/> 
            (that returns a resultset) using the <see cref="T:System.Data.DataRow"/> column values 
            as the stored procedure's parameters values.
            This method will query the database to discover the parameters for the 
            stored procedure (the first time each stored procedure is called), and assign 
            the values based on parameter order.
            </summary>
            <remarks>
            Columns' name in data row must same with store procedure parameters' name exactly. <br/>
            This method uses connection provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> 
            object or internal connection. Besides, this method provides no access to output parameters 
            or the stored procedure's return value parameter.
            </remarks>
            <param name="strSpName">The name of the stored procedure.</param>
            <param name="row">The row used to hold the stored procedure's parameter values.</param>
            <returns>A <see cref="T:System.Data.SqlClient.SqlDataReader"/> containing the resultset 
            generated by the command.</returns>
            <example>
            <code>
            SqlDataReader dtr = ExecuteReaderTypedParams("GetOrders", rowData);
            </code>
            </example>
            <exception cref="T:System.ArgumentNullException">
            <i>strSpName</i> parameter is not provided.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteScalarTypedParams(System.String,System.Data.DataRow)">
            <summary>
            Execute a stored procedure via a <see cref="T:System.Data.SqlClient.SqlCommand"/> 
            (that returns a 1x1 resultset) using the <see cref="T:System.Data.DataRow"/> column 
            values as the stored procedure's parameters values.
            This method will query the database to discover the parameters for the 
            stored procedure (the first time each stored procedure is called), and assign 
            the values based on parameter order.
            </summary>
            <remarks>
            Columns' name in data row must same with store procedure parameters' name exactly. <br/>
            This method uses connection provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> 
            object or internal connection.
            </remarks>
            <param name="strSpName">The name of the stored procedure.</param>
            <param name="row">The row used to hold the stored procedure's parameter values.</param>
            <returns>An object containing the value in the 1x1 resultset generated by the command.</returns>
            <example>
            <code>
            int orderCount = (int)ExecuteScalarTypedParams("GetOrderCount", rowData);
            </code>
            </example>
            <exception cref="T:System.ArgumentNullException">
            <i>strSpName</i> parameter is not provided.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelper.ExecuteXmlReaderTypedParams(System.String,System.Data.DataRow)">
            <summary>
            Execute a stored procedure via a <see cref="T:System.Data.SqlClient.SqlCommand"/> 
            (that returns a resultset) using the <see cref="T:System.Data.DataRow"/> column values 
            as the stored procedure's parameters values.
            This method will query the database to discover the parameters for the 
            stored procedure (the first time each stored procedure is called), and assign 
            the values based on parameter order.
            </summary>
            <remarks>
            Columns' name in data row must same with store procedure parameters' name exactly. <br/>
            This method can be called by using <see cref="T:System.Data.SqlClient.SqlConnection"/> 
            provided by <see cref="T:DBHelper.SqlClient.SqlConnectionProvider"/> only, i.e. external
            connection. Besides, this method provides no access to output parameters or the stored 
            procedure's return value parameter.
            </remarks>
            <param name="strSpName">The name of the stored procedure.</param>
            <param name="row">The row used to hold the stored procedure's parameter values.</param>
            <returns>An <see cref="T:System.Xml.XmlReader"/> containing the resultset generated 
            by the command.</returns>
            <example>
            <code>
            XmlReader xmlr = ExecuteXmlReaderTypedParams("GetOrders", rowData);
            </code>
            </example>
            <exception cref="T:System.ArgumentNullException">
            <i>strSpName</i> parameter is not provided.
            </exception>
        </member>
        <member name="P:DBHelper.SqlClient.SqlHelper.ReturnValue">
            <summary>
            Gets the return value after executing Sql command.
            </summary>
        </member>
        <member name="P:DBHelper.SqlClient.SqlHelper.OutputValue">
            <summary>
            Gets the output value after executing Sql command, if provided.
            </summary>
        </member>
        <member name="T:DBHelper.SqlClient.SqlHelper.SqlConnectionOwnership">
            <summary>
            This enum is used to indicate whether the connection was provided by the caller, 
            or created by SqlHelper, so that we can set the appropriate CommandBehavior 
            when calling ExecuteReader().
            </summary>
        </member>
        <member name="F:DBHelper.SqlClient.SqlHelper.SqlConnectionOwnership.Internal">
            <summary>Connection is owned and managed by SqlHelper.</summary>
        </member>
        <member name="F:DBHelper.SqlClient.SqlHelper.SqlConnectionOwnership.External">
            <summary>Connection is owned and managed by the caller.</summary>
        </member>
        <member name="T:DBHelper.SqlClient.SqlHelperParameterCache">
            <summary>
            SqlHelperParameterCache provides functions to leverage a static cache of procedure 
            parameters, and the ability to discover parameters for stored procedures at run-time.
            </summary>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelperParameterCache.#ctor">
            <summary>
            Since this class provides only static methods, make the default constructor private to prevent 
            instances from being created with "new SqlHelperParameterCache()".
            </summary>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelperParameterCache.DiscoverSpParameterSet(System.Data.SqlClient.SqlConnection,System.String,System.Boolean)">
            <summary>
            Resolve at run time the appropriate set of <see cref="T:System.Data.SqlClient.SqlParameter"/>s 
            for a stored procedure.
            </summary>
            <param name="cnn">A valid <see cref="T:System.Data.SqlClient.SqlConnection"/> object.</param>
            <param name="strSpName">The name of the stored procedure.</param>
            <param name="bIncludeReturnValueParameter">Whether or not to include return value parameter.</param>
            <returns>The parameter array discovered.</returns>
            <exception cref="T:System.ArgumentNullException">
            <i>cnn</i> parameter is not provided,<br/>
            or<br/>
            <i>strSpName</i> parameter is not provided.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelperParameterCache.CloneParameters(System.Data.SqlClient.SqlParameter[])">
            <summary>
            Deep copy of a <see cref="T:System.Data.SqlClient.SqlParameter"/> array.
            </summary>
            <param name="aparOriginal">Original parameter array to been cloned.</param>
            <returns>A deep copy of the original parameter array</returns>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelperParameterCache.CacheParameterSet(System.String,System.String,System.Data.SqlClient.SqlParameter[])">
            <summary>
            Add parameter array to the cache.
            </summary>
            <param name="strCnnString">A valid connection string for a 
            <see cref="T:System.Data.SqlClient.SqlConnection"/>.</param>
            <param name="strCommandText">The stored procedure name or T-SQL command</param>
            <param name="apar">An array of SqlParamters to be cached</param>
            <exception cref="T:System.ArgumentNullException">
            <i>strCnnString</i> parameter is not provided,<br/>
            or<br/>
            <i>strCommandText</i> parameter is not provided.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelperParameterCache.GetCachedParameterSet(System.String,System.String)">
            <summary>
            Retrieve a parameter array from the cache.
            </summary>
            <param name="strCnnString">A valid connection string for a 
            <see cref="T:System.Data.SqlClient.SqlConnection"/>.</param>
            <param name="strCommandText">The stored procedure name or T-SQL command.</param>
            <returns>An array of <see cref="T:System.Data.SqlClient.SqlParameter"/>s. is the parameters
            are cached otherwise Null is returned.</returns>
            <exception cref="T:System.ArgumentNullException">
            <i>strCnnString</i> parameter is not provided,<br/>
            or<br/>
            <i>strCommandText</i> parameter is not provided.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelperParameterCache.GetSpParameterSet(System.String,System.String)">
            <summary>
            Retrieves the set of <see cref="T:System.Data.SqlClient.SqlParameter"/>s appropriate 
            for the stored procedure.
            </summary>
            <remarks>
            This method will query the database for this information, and then store it in a 
            cache for future requests.<br/>
            By default, return value parameter is not included.
            </remarks>
            <param name="strCnnString">A valid connection string for a 
            <see cref="T:System.Data.SqlClient.SqlConnection"/>.</param>
            <param name="strSpName">The name of the stored procedure.</param>
            <returns>An array of <see cref="T:System.Data.SqlClient.SqlParameter"/>s.</returns>
            <exception cref="T:System.ArgumentNullException">
            <i>strCnnString</i> parameter is not provided,<br/>
            or<br/>
            <i>strSpName</i> parameter is not provided.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelperParameterCache.GetSpParameterSet(System.String,System.String,System.Boolean)">
            <summary>
            Retrieves the set of <see cref="T:System.Data.SqlClient.SqlParameter"/>s 
            appropriate for the stored procedure.
            </summary>
            <remarks>
            This method will query the database for this information, and then store it in a 
            cache for future requests.
            </remarks>
            <param name="strCnnString">A valid connection string for a 
            <see cref="T:System.Data.SqlClient.SqlConnection"/>.</param>
            <param name="strSpName">The name of the stored procedure.</param>
            <param name="bIncludeReturnValueParameter">A bool value indicating whether the return value 
            parameter should be included in the results.</param>
            <returns>An array of <see cref="T:System.Data.SqlClient.SqlParameter"/>s.</returns>
            <exception cref="T:System.ArgumentNullException">
            <i>strCnnString</i> parameter is not provided,<br/>
            or<br/>
            <i>strSpName</i> parameter is not provided.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelperParameterCache.GetSpParameterSet(System.Data.SqlClient.SqlConnection,System.String)">
            <summary>
            Retrieves the set of <see cref="T:System.Data.SqlClient.SqlParameter"/>s appropriate 
            for the stored procedure.
            </summary>
            <remarks>
            This method will query the database for this information, and then store it in a 
            cache for future requests.<br/>
            By default, return value parameter is not provided.
            </remarks>
            <param name="cnn">A valid <see cref="T:System.Data.SqlClient.SqlConnection"/> object.</param>
            <param name="strSpName">The name of the stored procedure.</param>
            <returns>An array of <see cref="T:System.Data.SqlClient.SqlParameter"/>s.</returns>
            <exception cref="T:System.ArgumentNullException">
            <i>cnn</i> parameter is not provided,<br/>
            or<br/>
            <i>strSpName</i> parameter is not provided.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelperParameterCache.GetSpParameterSet(System.Data.SqlClient.SqlConnection,System.String,System.Boolean)">
            <summary>
            Retrieves the set of <see cref="T:System.Data.SqlClient.SqlParameter"/>s appropriate 
            for the stored procedure.
            </summary>
            <remarks>
            This method will query the database for this information, and then store it in a 
            cache for future requests.
            </remarks>
            <param name="cnn">A valid <see cref="T:System.Data.SqlClient.SqlConnection"/> object.</param>
            <param name="strSpName">The name of the stored procedure.</param>
            <param name="bIncludeReturnValueParameter">A bool value indicating whether the return value 
            parameter should be included in the results.</param>
            <returns>An array of <see cref="T:System.Data.SqlClient.SqlParameter"/>s.</returns>
            <exception cref="T:System.ArgumentNullException">
            <i>cnn</i> parameter is not provided,<br/>
            or<br/>
            <i>strSpName</i> parameter is not provided.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlHelperParameterCache.GetSpParameterSetInternal(System.Data.SqlClient.SqlConnection,System.String,System.Boolean)">
            <summary>
            Retrieves the set of <see cref="T:System.Data.SqlClient.SqlParameter"/>s appropriate 
            for the stored procedure.
            </summary>
            <remarks>
            This method will query from cache first if the requested parameters are exists. If not,
            it will query from database and stores it in cache for future request.
            </remarks>
            <param name="cnn">A valid <see cref="T:System.Data.SqlClient.SqlConnection"/> object.</param>
            <param name="strSpName">The name of the stored procedure.</param>
            <param name="bIncludeReturnValueParameter">A bool value indicating whether the return value 
            parameter should be included in the results.</param>
            <returns>An array of <see cref="T:System.Data.SqlClient.SqlParameter"/>s.</returns>
            <exception cref="T:System.ArgumentNullException">
            <i>cnn</i> parameter is not provided,<br/>
            or<br/>
            <i>strSpName</i> parameter is not provided.
            </exception>
        </member>
        <member name="T:DBHelper.SqlClient.SqlTableHelper">
            <summary>
            Convenient data access class for a database table. It provides convenient ways
            of performs basic database operations, i.e. Select, Insert, Update, and Delete.
            </summary>
            <example>
            <code>
            mobjTableHelper = new SqlTableHelper("x_Test");
            mobjCnnProvider = new SqlConnectionProvider();
            mobjCnnProvider.ConnectionString = "Initial Catalog=SwComponent;Data Source=Falcon;UID=sa;Password=sa";
            mobjTableHelper.MainConnectionProvider = mobjCnnProvider;
            mobjTableHelper.FieldsToUpdate = "name";
            mobjTableHelper.Compile();
            DataTable tblData = mobjTableHelper.SelectTop(50, true);
            DataRow row = tblData.Rows[0];
            row.BeginEdit();
            row["Name"] = "Neo";
            mobjTableHelper.CriteriaType = DBCriteria.None;
            mobjCnnProvider.OpenConnection();
            mobjTableHelper.Update();
            mobjCnnProvider.CloseConnection();
            tblData.AcceptChanges();
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.#ctor(System.String)">
            <summary>
            Initializes a new instance of <see cref="T:DBHelper.SqlClient.SqlTableHelper"/> with
            specified table name.
            </summary>
            <param name="strTableName">The table name.</param>
            <exception cref="T:System.ArgumentNullException">
            <i>strTableName</i> parameter is not provided.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.Compile">
            <summary>
            Prepares the Select, Insert, Update, and Delete commands that provide convenient
            ways to perform database operations. This method also retrieves all fields' info
            and set the columns mapping type according to 
            <see cref="P:DBHelper.SqlClient.SqlTableHelper.FieldsToSelect"/>.
            </summary>
            <example>
            <code>
            objTableHelper.FieldsToSelect = "name";
            mobjTableHelper.FieldsToUpdate = "name";
            mobjTableHelper.Compile();
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.SetMappingType">
            <summary>
            Sets the mapping type of <see cref="T:System.Data.DataTable"/>'s columns according to
            <see cref="P:DBHelper.SqlClient.SqlTableHelper.FieldsToSelect"/>. If a column is not specified
            in <see cref="P:DBHelper.SqlClient.SqlTableHelper.FieldsToSelect"/>, its mapping type will be
            set to Hidden, otherwise the default is used.
            </summary>
            <remarks>
            Mapping type is set so that hidden mapping type will not be displayed when its datatable
            is binded to control.
            </remarks>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.RetrieveFieldsInfo">
            <summary>
            Retrieves the fields' information of the table represented by this class.
            </summary>
            <remarks>
            Throws exception if error occures.<br/><br/>
            Uses the following query to retrieve <i>all</i> fields' information in one single
            request:<br/><br/>
            <code>
            <pre>
            SELECT INFORMATION_SCHEMA.COLUMNS.*,
            (
            	SELECT COLUMNPROPERTY(OBJECT_ID(@sTableName), INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME, 'IsComputed')
            ) AS IsComputed,
            (
            	SELECT COL_LENGTH(@sTableName, INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME)
            ) AS ColumnLength,
            (
            	SELECT COLUMNPROPERTY(OBJECT_ID(@sTableName), INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME, 'IsIdentity')
            ) AS IsIdentity,
            (
            	SELECT COLUMNPROPERTY(OBJECT_ID(@sTableName), INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME, 'IsRowGuidCol')
            ) AS IsRowGuidColumn,
            (
            	ISNULL(	
            	(
            		SELECT 	1
            		FROM	INFORMATION_SCHEMA.KEY_COLUMN_USAGE
            		WHERE	TABLE_NAME=@sTableName AND TABLE_SCHEMA='dbo'
            			AND COLUMN_NAME=INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME
            			AND EXISTS
            			(SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
            			WHERE TABLE_NAME=@sTableName AND TABLE_SCHEMA='dbo' AND CONSTRAINT_TYPE = 'PRIMARY KEY'
            			AND CONSTRAINT_NAME=INFORMATION_SCHEMA.KEY_COLUMN_USAGE.CONSTRAINT_NAME)
            	), 0)
            ) AS IsPrimaryKey,
            (
            	ISNULL(	
            	(	
            		SELECT 	1
            		FROM	INFORMATION_SCHEMA.KEY_COLUMN_USAGE
            		WHERE	TABLE_NAME=@sTableName AND TABLE_SCHEMA='dbo'
            			AND COLUMN_NAME=INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME
            			AND EXISTS
            			(SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
            			WHERE TABLE_NAME=@sTableName AND TABLE_SCHEMA='dbo' AND CONSTRAINT_TYPE = 'FOREIGN KEY'
            			AND CONSTRAINT_NAME=INFORMATION_SCHEMA.KEY_COLUMN_USAGE.CONSTRAINT_NAME)
            	), 0)
            ) AS IsForeignKey, 
            (
            	ISNULL(	
            	(	
            		SELECT 	1
            		FROM	INFORMATION_SCHEMA.KEY_COLUMN_USAGE
            		WHERE	TABLE_NAME=@sTableName AND TABLE_SCHEMA='dbo'
            			AND COLUMN_NAME=INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME
            			AND EXISTS
            			(SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
            			WHERE TABLE_NAME=@sTableName AND TABLE_SCHEMA='dbo' AND CONSTRAINT_TYPE = 'UNIQUE'
            			AND CONSTRAINT_NAME=INFORMATION_SCHEMA.KEY_COLUMN_USAGE.CONSTRAINT_NAME)
            	), 0)
            ) AS HasUniqueConstraint
            FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @sTableName AND TABLE_SCHEMA='dbo'
            </pre>
            </code>
            </remarks>
            <exception cref="T:DBHelper.DataException.NoFieldsAvailable">
            No fields is available for the table.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.ConstructDataTableSchema">
            <summary>
            Constructs table schema.
            </summary>
            <remarks>
            A new <see cref="T:System.Data.DataTable"/> instance is created and columns are added accordingly 
            based on retrieved fields' info. The following <see cref="T:System.Data.DataColumn"/>'s properties 
            are configured:
            <UL>
            <LI>AutoIncrement. You must set AutoIncrementStep and AutoIncrementSeed separately.</LI>
            <LI>Unique</LI>
            </UL>
            <P><B>ConstructDataTableSchema</B> also configures the PrimaryKey and Constraints properties 
            according to the following rules:
            <UL>
            <LI>If one or more primary key columns are exist, they are used as the primary key columns 
            for the DataTable.</LI>
            <LI>If no primary key columns are exist but unique columns are, the unique columns are used as 
            the primary key if, and only if, all the unique columns are non-nullable. If any of the columns 
            are nullable, a UniqueConstraint is added to the ConstraintCollection, but the 
            PrimaryKey property is not set.</LI>
            <LI>If both primary key columns and unique columns are exists, the primary key columns are 
            used as the primary key columns for the DataTable.</LI>
            </UL>
            </P>
            </remarks>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.GetField(System.String)">
            <summary>
            Gets the <see cref="T:DBHelper.Field"/> instance for specified field name.
            </summary>
            <remarks>
            Field name is not case sensitive.
            </remarks>
            <param name="strFieldName">The field name.</param>
            <returns>A <see cref="T:DBHelper.Field"/> instance.</returns>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.AddParentKeys(DBHelper.SqlClient.SqlTableHelper,System.String[])">
            <summary>
            Adds parent relationship with the specified parent <see cref="T:DBHelper.SqlClient.SqlTableHelper"/>
            instance and foreign keys.
            </summary>
            <remarks>
            This method will adds the parent relation to this instance's parent relation collection.
            The relation name format is:-<br/><br/>
            [ParentTableName]FK[ForeignTableName]|[ForeignFieldName]|[ForeignFieldName]..., e.g. <br/><br/>
            x_PrimaryFKx_Foreign|CustIC|<br/><br/>
            When adding parent relationship using this method, primary key or unique instance
            in child table will be used as parent key.
            </remarks>
            <param name="objParentTable">A SqlTableHelper instance.</param>
            <param name="astrForeignField">An array consists of foreign keys' field names.</param>
            <returns><see cref="T:DBHelper.DBRelation"/> intance that represents 
            the database relationship.</returns>
            <exception cref="T:System.ArgumentNullException">
            <i>astrForeignField</i> parameter is not provided,<br/>
            or<br/>
            Zero length array is provided.
            </exception>
            <exception cref="T:System.ArgumentException">
            Wrong field name is specified for foreign keys.
            </exception>
            <exception cref="T:DBHelper.DataException.NoPrimaryOrUniqueKeyAvailable">
            No primary keys or uique keys is available for parent table.
            </exception>
            <exception cref="T:DBHelper.DataException.ParentRelationAlreadyExist">
            The parent relation is already exist.
            </exception>
            <example>
            <code>
            mobjForeignTable.AddParentKeys(mobjPrimaryTable, new string[] {"CustIC"});
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.AddForeignKeys(DBHelper.SqlClient.SqlTableHelper,System.String[])">
            <summary>
            Adds foreign relationship with the specified foreign <see cref="T:DBHelper.SqlClient.SqlTableHelper"/>
            instance and foreign keys.
            </summary>
            <remarks>
            This method will adds the foreign relation to this instance's child relation collection.
            The relation name format is:-<br/><br/>
            [ParentTableName]FK[ForeignTableName]|[ForeignFieldName]|[ForeignFieldName]..., e.g. <br/><br/>
            x_PrimaryFKx_Foreign|CustIC|<br/><br/>
            When adding foreign relationship using this method, primary key or unique instance
            in parent table will be used as parent key.
            </remarks>
            <param name="objForeignTable">A SqlTableHelper instance.</param>
            <param name="astrForeignField">An array consists of foreign keys' field names.</param>
            <returns><see cref="T:DBHelper.DBRelation"/> intance that represents the database 
            relationship.</returns>
            <exception cref="T:System.ArgumentNullException">
            <i>astrForeignField</i> parameter is not provided,<br/>
            or<br/>
            Zero length array is provided.
            </exception>
            <exception cref="T:System.ArgumentException">
            Wrong field name is specified for foreign keys.
            </exception>
            <exception cref="T:DBHelper.DataException.NoPrimaryOrUniqueKeyAvailable">
            No primary keys or uique keys is available for parent table.
            </exception>
            <exception cref="T:DBHelper.DataException.ForeignRelationAlreadyExist">
            The foreign relation is already exist.
            </exception>
            <example>
            <code>
            mobjPrimaryTable.AddForeignKeys(mobjForeignTable, new string[] {"CustIC"});
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.GetAllFieldsToUpdate">
            <summary>
            Return an array of all fields' name that can be updated.
            </summary>
            <remarks>
            An auto incremented field and timestamp field cannot be updated.
            </remarks>
            <returns>
            A string array consists of all fields that can be updated.
            </returns>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.GetSortCriteria">
            <summary>
            Gets the sort criteria (if any) for select command.
            </summary>
            <returns>Sort criteria or Empty if sort criteria is not specified.</returns>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.GetCriteriaKeyColumns">
            <summary>
            Gets an array of columns representing table's primary keys or unique constraints.
            </summary>
            <returns>An array of columns.</returns>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.PrepareCriteriaKey">
            <summary>
            Prepares Sql parameters and base strings. They are used in database operations
            that involved criteria using primary key or unique constraint.
            </summary>
            <remarks>
            Parameters' name is start with "@k_[FieldName]", e.g. "@k_IC".
            </remarks>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.PrepareSelectCommand">
            <summary>
            Prepares a select command.
            </summary>
            <remarks>
            The select command will select fields specified by 
            <see cref="P:DBHelper.SqlClient.SqlTableHelper.FieldsToSelect"/> only.
            If <see cref="P:DBHelper.SqlClient.SqlTableHelper.FieldsToSelect"/> is not specified,
            it will select all fields.<br/>
            By default, primary keys' columns or unique constraint's column will be always selected
            even if it is not specified in <see cref="P:DBHelper.SqlClient.SqlTableHelper.FieldsToSelect"/>.
            </remarks>
            <exception cref="T:System.ArgumentException">
            Invalid field name is specified in 
            <see cref="P:DBHelper.SqlClient.SqlTableHelper.FieldsToSelect"/>.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.PrepareInsertCommand">
            <summary>
            Prepares a insert command.
            </summary>
            <remarks>
            This method will prepares output parameter for identity column so that the identity
            value can be retrieved from database after insert.
            </remarks>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.PrepareUpdateCommand">
            <summary>
            Prepares a update command.
            </summary>
            <remarks>
            The update command will update fields specified by 
            <see cref="P:DBHelper.SqlClient.SqlTableHelper.FieldsToUpdate"/> only.
            If <see cref="P:DBHelper.SqlClient.SqlTableHelper.FieldsToUpdate"/> is not specified,
            it will update all fields. Identity and timestamp fields cannot be updated.
            </remarks>
            <exception cref="T:System.ArgumentException">
            Invalud field name is specified in 
            <see cref="P:DBHelper.SqlClient.SqlTableHelper.FieldsToUpdate"/>.<br/>
            or<br/>
            Identity field is specified in
            <see cref="P:DBHelper.SqlClient.SqlTableHelper.FieldsToUpdate"/>.<br/>
            or<br/>
            Timestamp field is specified in
            <see cref="P:DBHelper.SqlClient.SqlTableHelper.FieldsToUpdate"/>.<br/>
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.PrepareDeleteCommand">
            <summary>
            Prepares a delete command.
            </summary>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.PrepareDataAdapter">
            <summary>
            Prepares a data adapter.
            </summary>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.SelectTop(System.Int32,System.Boolean)">
            <summary>
            Select rows from the table based on requested return rows.
            </summary>
            <remarks>
            This method will select columns specified in 
            <see cref="P:DBHelper.SqlClient.SqlTableHelper.FieldsToSelect"/> only.
            </remarks>
            <param name="iTotalRow">The total rows or percentage rows to return.</param>
            <param name="bPercent">True if percentage is specified for returned rows otherwise False.</param>
            <returns><see cref="T:System.Data.DataTable"/> object if succeeded, otherwise an Exception 
            is thrown.</returns>
            <exception cref="T:System.InvalidOperationException">
            <see cref="M:DBHelper.SqlClient.SqlTableHelper.Compile"/> is not called first.
            </exception>
            <example>
            <code>
            mobjCnnProvider.OpenConnection();
            mobjTableHelper.SelectCriteria = mtxtFilterCriteria.Text;
            mobjTableHelper.Data.Clear();
            mobjTableHelper.Sort = "IC DESC, OldIC DESC";
            tblData = mobjTableHelper.SelectTop(2, false);          
            mdgrData.DataSource = tblData;
            mobjCnnProvider.CloseConnection();
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.SelectSome">
            <summary>
            Select rows from the table based on <see cref="P:DBHelper.SqlClient.SqlTableHelper.SelectCriteria"/>.
            </summary>
            <remarks>
            This method will select columns specified in 
            <see cref="P:DBHelper.SqlClient.SqlTableHelper.FieldsToSelect"/> only.
            </remarks>
            <returns><see cref="T:System.Data.DataTable"/> object if succeeded, otherwise an Exception 
            is thrown.</returns>
            <exception cref="T:System.InvalidOperationException">
            <see cref="M:DBHelper.SqlClient.SqlTableHelper.Compile"/> is not called first.
            </exception>
            <example>
            <code>
            mobjCnnProvider.OpenConnection();
            mobjTableHelper.SelectCriteria = mtxtFilterCriteria.Text;
            mobjTableHelper.Data.Clear();
            mobjTableHelper.SelectCriteria = "IC = '800101069944'";
            mobjTableHelper.Sort = "IC DESC, OldIC DESC";
            tblData = mobjTableHelper.SelectSome();          
            mdgrData.DataSource = tblData;
            mobjCnnProvider.CloseConnection();
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.SelectAll">
            <summary>
            Select all rows from the table.
            </summary>
            <remarks>
            This method will select columns specified in 
            <see cref="P:DBHelper.SqlClient.SqlTableHelper.FieldsToSelect"/> only.
            </remarks>
            <returns><see cref="T:System.Data.DataTable"/> object if succeeded, otherwise an Exception 
            is thrown.</returns>
            <exception cref="T:System.InvalidOperationException">
            <see cref="M:DBHelper.SqlClient.SqlTableHelper.Compile"/> is not called first.
            </exception>
            <example>
            <code>
            mobjCnnProvider.OpenConnection();
            mobjTableHelper.Data.Clear();
            mobjTableHelper.Sort = "IC DESC, OldIC DESC";
            tblData = mobjTableHelper.SelectAll();          
            mdgrData.DataSource = tblData;
            mobjCnnProvider.CloseConnection();
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.Insert">
            <summary>
            Insert rows from <see cref="T:System.Data.DataTable"/> object
            obtained from this instance.
            </summary>
            <remarks>
            This method will insert all rows in DataTable object. If a column is identity,
            the identity value will be retrieved and populated to the column after insert.
            Total of inserted rows can be retrieved from 
            <see cref="P:DBHelper.DBInteractionBase.RowsAffected"/> after each successful
            insertion<br/>
            .NET type default value will be used if no value is provided for non-nullable field.
            </remarks>
            <returns>True if succeeded, otherwise an Exception is thrown.</returns>
            <exception cref="T:System.InvalidOperationException">
            <see cref="M:DBHelper.SqlClient.SqlTableHelper.Compile"/> is not called first.
            </exception>
            <example>
            <code>
            DataTable tblData = mobjTableHelper.Data;
            tblData.Rows.Clear();
            DataRow row = tblData.NewRow();
            row["IC"] = "090909055514";
            row["Name"] = "Leo";
            tblData.Rows.Add(row);
            row = tblData.NewRow();
            row["IC"] = "090909055515";
            row["Name"] = "Frodo";
            tblData.Rows.Add(row);
            mobjCnnProvider.OpenConnection();
            mobjTableHelper.Insert();
            mobjCnnProvider.CloseConnection();
            mdgrData.DataSource = tblData;
            Console.WriteLine("Rows Affected:" + mobjTableHelper.RowsAffected);
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.Update">
            <summary>
            Update rows in <see cref="T:System.Data.DataTable"/> based on 
            <see cref="P:DBHelper.SqlClient.SqlTableHelper.CriteriaType"/>.
            </summary>
            <remarks>
            <p>
            This method will update columns specified in 
            <see cref="P:DBHelper.SqlClient.SqlTableHelper.FieldsToUpdate"/> only.
            </p>
            Rows are updated based on selected criteria type - <see cref="T:DBHelper.DBCriteria"/>:
            <UL>
            <LI>None - Update all rows in database by using data from first row in DataTable.</LI>
            <LI>UseBoth - Update rows thats match primary key/unique constraint of rows in DataTable 
            and filter expression by using DataTable's data row by row.</LI>
            <LI>UseFilterExpression - Update rows thats match filter expression by using data
            from first row in DataTable.</LI>
            <LI>UsePrimaryKey - Update rows thats match primary key/unique constraint of rows in DataTable
            by using DataTable's data row by row.</LI>
            </UL>
            <p>
            Total of updated rows can be retrieved from 
            <see cref="P:DBHelper.DBInteractionBase.RowsAffected"/> after each successful update.
            </p>
            </remarks>
            <returns>True if succeeded, otherwise an Exception is thrown.</returns>
            <exception cref="T:System.InvalidOperationException">
            <see cref="M:DBHelper.SqlClient.SqlTableHelper.Compile"/> is not called first.
            </exception>
            <example>
            Example of using DBCriteria.<see cref="F:DBHelper.DBCriteria.UsePrimaryKey"/>
            <code>
            DataTable tblData = mobjTableHelper.SelectTop(2, false);
            DataRow row = tblData.Rows[1];
            row.BeginEdit();
            row["Name"] = "Xeon";
            mobjTableHelper.CriteriaType = DBCriteria.UsePrimaryKey;
            mobjCnnProvider.OpenConnection();
            mobjTableHelper.Update();
            mobjCnnProvider.CloseConnection();
            tblData.AcceptChanges();
            </code>
            Example of using DBCriteria.<see cref="F:DBHelper.DBCriteria.UseFilterExpression"/>
            <code>
            mobjTableHelper.Data.Clear();
            DataTable tblData = mobjTableHelper.Data;
            DataRow row = tblData.NewRow();
            row["IC"] = "090909079911";
            tblData.Rows.Add(row);
            mobjTableHelper.UpdateCriteria = "name = 'Test'";
            mobjTableHelper.CriteriaType = DBCriteria.UseFilterExpression;
            mobjCnnProvider.OpenConnection();
            mobjTableHelper.Update();
            mobjCnnProvider.CloseConnection();
            </code>
            Example of using DBCriteria.<see cref="F:DBHelper.DBCriteria.UseBoth"/>
            <code>
            DataTable tblData = mobjTableHelper.SelectTop(2, false);
            DataRow row = tblData.Rows[1];
            row.BeginEdit();
            row["Name"] = "Xeon";
            mobjTableHelper.UpdateCriteria = "name = 'Test'";
            mobjTableHelper.CriteriaType = DBCriteria.UseBoth;
            mobjCnnProvider.OpenConnection();
            mobjTableHelper.Update();
            mobjCnnProvider.CloseConnection();
            tblData.AcceptChanges();
            </code>
            Example of using DBCriteria.<see cref="F:DBHelper.DBCriteria.None"/>
            <code>
            mobjTableHelper.Data.Clear();
            DataTable tblData = mobjTableHelper.Data;
            DataRow row = tblData.NewRow();
            row["Name"] = "Xeon";
            tblData.Rows.Add(row);
            mobjTableHelper.CriteriaType = DBCriteria.None;
            mobjCnnProvider.OpenConnection();
            mobjTableHelper.Update();
            mobjCnnProvider.CloseConnection();
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.Delete">
            <summary>
            Delete rows from <see cref="T:System.Data.DataTable"/> based on
            <see cref="P:DBHelper.SqlClient.SqlTableHelper.CriteriaType"/>.
            </summary>
            <remarks>
            Rows are deleted based on selected criteria type - <see cref="T:DBHelper.DBCriteria"/>:
            <UL>
            <LI>None - Delete all rows in database.</LI>
            <LI>UseBoth - Delete rows in database thats match primary key/unique constraint of data in DataTable 
            and filter expression.</LI>
            <LI>UseFilterExpression - Delete rows in database thats match filter expression.</LI>
            <LI>UsePrimaryKey - Delete rows in database thats match primary key/unique constraint of data 
            in DataTable.</LI>
            </UL>
            <p>
            Total of deleted rows can be retrieved from 
            <see cref="P:DBHelper.DBInteractionBase.RowsAffected"/> after each successful deletion.
            </p>
            </remarks>
            <returns>True if succeeded, otherwise an Exception is thrown.</returns>
            <exception cref="T:System.InvalidOperationException">
            <see cref="M:DBHelper.SqlClient.SqlTableHelper.Compile"/> is not called first.
            </exception>
            <example>
            Example of using DBCriteria.<see cref="F:DBHelper.DBCriteria.UsePrimaryKey"/>
            <code>
            mobjTableHelper.Data.Clear();
            DataTable tblData = mobjTableHelper.Data;
            DataRow row = tblData.NewRow();
            row["IC"] = "090909079911";
            tblData.Rows.Add(row);
            mobjTableHelper.CriteriaType = DBCriteria.UsePrimaryKey;
            mobjCnnProvider.OpenConnection();
            mobjTableHelper.Delete();
            mobjCnnProvider.CloseConnection();
            </code>
            Example of using DBCriteria.<see cref="F:DBHelper.DBCriteria.UseFilterExpression"/>
            <code>
            mobjTableHelper.DeleteCriteria = "name = ='test'";
            mobjTableHelper.CriteriaType = DBCriteria.UseFilterExpression;
            mobjCnnProvider.OpenConnection();
            mobjTableHelper.Delete();
            mobjCnnProvider.CloseConnection();
            </code>
            Example of using DBCriteria.<see cref="F:DBHelper.DBCriteria.UseBoth"/>
            <code>
            mobjTableHelper.Data.Clear();
            DataTable tblData = mobjTableHelper.Data;
            DataRow row = tblData.NewRow();
            row["IC"] = "090909079911";
            tblData.Rows.Add(row);
            mobjTableHelper.DeleteCriteria = "name = 'Test'";
            mobjTableHelper.CriteriaType = DBCriteria.UseBoth;
            mobjCnnProvider.OpenConnection();
            mobjTableHelper.Delete();
            mobjCnnProvider.CloseConnection();
            </code>
            Example of using DBCriteria.<see cref="F:DBHelper.DBCriteria.None"/>
            <code>
            mobjTableHelper.CriteriaType = DBCriteria.None;
            mobjCnnProvider.OpenConnection();
            mobjTableHelper.Delete();
            mobjCnnProvider.CloseConnection();
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.DBAdapterUpdate">
            <summary>
            Calls the respective INSERT, UPDATE, or DELETE statements for each 
            inserted, updated, or deleted rows in the underlined <see cref="T:System.Data.DataTable"/> 
            instance using <see cref="M:System.Data.Common.DbDataAdapter.Update(System.Data.DataTable)"/> method.
            </summary>
            <remarks>
            Insert, Update, and Delete commands are built automatically using 
            <see cref="T:System.Data.SqlClient.SqlCommandBuilder"/> based on select command built
            by <see cref="!:DBHelper.SqlClient.PrepareSelectCommand"/>.
            <br/>
            Total of updated rows can be retrieved from 
            <see cref="P:DBHelper.DBInteractionBase.RowsAffected"/> after each successful update.
            </remarks>
            <returns>The number of rows successfully updated from the underlined 
            <see cref="T:System.Data.DataTable"/> instance.</returns>
            <exception cref="T:System.InvalidOperationException">
            <see cref="M:DBHelper.SqlClient.SqlTableHelper.Compile"/> is not called first.
            </exception>
            <example>
            <code>
            DataRow row;
            DataTable tblData = mobjTableHelper.SelectAll();
            row = tblData.Select("id = 10")[0];
            row["Name"] = "eagle";
            row = tblData.NewRow();
            row["IC"] = "8107310421";
            row["Name"] = "wolf";
            tblData.Rows.Add(row);
            row = tblData.NewRow();
            row["IC"] = "8207310421";
            tblData.Rows.Add(row);
            row = tblData.Select("id = 11")[0];
            row.Delete();
            mobjCnnProvider.OpenConnection();
            int iTotalUpdated = mobjTableHelper.DBAdapterUpdate();
            mobjCnnProvider.CloseConnection();
            tblData.AcceptChanges();
            </code>
            </example>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.SelectRows(DBHelper.ICommonDBAccess,System.String)">
            <summary>
            Select rows based on specified select criteria.
            </summary>
            <param name="ictTableHelper">A TableHelper instance to select data from.</param>
            <param name="strSelectCriteria">Select criteria.</param>
            <returns>A <see cref="T:System.Data.DataTable"/> instance containing the selected rows.</returns>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.GetParentRowsDataTable(System.Data.DataRow,DBHelper.DBRelation,System.Boolean,System.Boolean@)">
            <summary>
            Retrieves parent rows for the specified row and specified relation and a value
            specifying whehter to requery the rows from database needed.
            </summary>
            <remarks>
            If <i>bRequeryIfNeeded</i> is True, this method will try to retrieve parent rows
            from DataTable instance first; if none is returned, it will retrieve from database.
            If <i>bRequeryIfNeeded</i> is False, this method will retrieve parent rows from
            DataTable instance only.
            </remarks>
            <param name="rowToSelect">The specified child row.</param>
            <param name="objRelation">The specified relation.</param>
            <param name="bRequeryIfNeeded">True if requery from database when needed , otherwise False.</param>
            <param name="bQueryFromDB">Return True if the rows are retrieved from database, ohterwise
            False if the rows are retrieved from existing rows in DataTable instance.</param>
            <returns>The parent rows.</returns>
            <exception cref="T:DBHelper.DataException.ParentRowTableMismatch">
            Wrong relation is specified.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.GetParentRowsDatabase(System.Data.DataRow,DBHelper.DBRelation)">
            <summary>
            Retrieves parent rows for the specified row and specified relation.
            </summary>
            <remarks>
            This method always retrieves parent rows from database.
            </remarks>
            <param name="rowToSelect">The specified child row.</param>
            <param name="objRelation">The specified relation.</param>
            <returns>The parent rows.</returns>
            <exception cref="T:DBHelper.DataException.ParentRowTableMismatch">
            Wrong relation is specified.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.GetParentRows(System.Data.DataRow,DBHelper.DBRelation,System.Boolean,System.Boolean,System.Boolean@)">
            <summary>
            Retrieves parent rows for the specified row and specified relation and a value
            specifying whehter to requery the rows from database when needed, and a value
            specifying whether to always requery the rows from database.
            </summary>
            <remarks>
            <i>bAlwaysRequery</i> take precedence over <i>bRequeryIfNeeded</i>.<br/>
            <p>
            If <i>bRequeryIfNeeded</i> is True, this method will try to retrieve parent rows
            from DataTable instance first; if none is returned, it will retrieve from database.
            If <i>bRequeryIfNeeded</i> is False, this method will retrieve parent rows from
            DataTable instance only.
            </p>
            </remarks>
            <param name="rowToSelect">The specified child row.</param>
            <param name="objRelation">The specified relation.</param>
            <param name="bRequeryIfNeeded">True if requery from database when needed , otherwise False.</param>
            <param name="bAlwaysRequery">True if always requery from database, ohterwise False.</param>
            <param name="bQueryFromDB">Return True if the rows are retrieved from database, ohterwise
            False if the rows are retrieved from existing rows in DataTable instance.</param>
            <returns>The parent rows.</returns>
            <exception cref="T:DBHelper.DataException.ParentRowTableMismatch">
            Wrong relation is specified.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.GetChildRowsDataTable(System.Data.DataRow,DBHelper.DBRelation,System.Boolean,System.Boolean@)">
            <summary>
            Retrieves foreign rows for the specified row and specified relation and a value
            specifying whehter to requery the rows from database needed.
            </summary>
            <remarks>
            If <i>bRequeryIfNeeded</i> is True, this method will try to retrieve foreign rows
            from DataTable instance first; if none is returned, it will retrieve from database.
            If <i>bRequeryIfNeeded</i> is False, this method will retrieve foreign rows from
            DataTable instance only.
            </remarks>
            <param name="rowToSelect">The specified parent row.</param>
            <param name="objRelation">The specified relation.</param>
            <param name="bRequeryIfNeeded">True if requery from database when needed , otherwise False.</param>
            <param name="bQueryFromDB">Return True if the rows are retrieved from database, ohterwise
            False if the rows are retrieved from existing rows in DataTable instance.</param>
            <returns>The foreign rows.</returns>
            <exception cref="T:DBHelper.DataException.RelationForeignTableMismatch">
            Wrong relation is specified.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.GetChildRowsDatabase(System.Data.DataRow,DBHelper.DBRelation)">
            <summary>
            Retrieves foreign rows for the specified row and specified relation.
            </summary>
            <remarks>
            This method always retrieves foreign rows from database.
            </remarks>
            <param name="rowToSelect">The specified parent row.</param>
            <param name="objRelation">The specified relation.</param>
            <returns>The parent rows.</returns>
            <exception cref="T:DBHelper.DataException.RelationForeignTableMismatch">
            Wrong relation is specified.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.GetChildRows(System.Data.DataRow,DBHelper.DBRelation,System.Boolean,System.Boolean,System.Boolean@)">
            <summary>
            Retrieves foreign rows for the specified row and specified relation and a value
            specifying whehter to requery the rows from database when needed, and a value
            specifying whether to always requery the rows from database.
            </summary>
            <remarks>
            <i>bAlwaysRequery</i> take precedence over <i>bRequeryIfNeeded</i>.<br/>
            <p>
            If <i>bRequeryIfNeeded</i> is True, this method will try to retrieve foreign rows
            from DataTable instance first; if none is returned, it will retrieve from database.
            If <i>bRequeryIfNeeded</i> is False, this method will retrieve foreign rows from
            DataTable instance only.
            </p>
            </remarks>
            <param name="rowToSelect">The specified parent row.</param>
            <param name="objRelation">The specified relation.</param>
            <param name="bRequeryIfNeeded">True if requery from database when needed , otherwise False.</param>
            <param name="bAlwaysRequery">True if always requery from database, ohterwise False.</param>
            <param name="bQueryFromDB">Return True if the rows are retrieved from database, ohterwise
            False if the rows are retrieved from existing rows in DataTable instance.</param>
            <returns>The foreign rows.</returns>
            <exception cref="T:DBHelper.DataException.RelationForeignTableMismatch">
            Wrong relation is specified.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelper.Dispose(System.Boolean)">
            <summary>
            Implements the Dispose functionality.
            </summary>
        </member>
        <member name="P:DBHelper.SqlClient.SqlTableHelper.TableName">
            <summary>
            Gets the table name for this instance.
            </summary>
        </member>
        <member name="P:DBHelper.SqlClient.SqlTableHelper.Fields">
            <summary>
            Gets the <see cref="T:System.Collections.Hashtable"/> containing the 
            <see cref="T:DBHelper.Field"/> instances.
            </summary>
        </member>
        <member name="P:DBHelper.SqlClient.SqlTableHelper.Data">
            <summary>
            Gets the <see cref="T:System.Data.DataTable"/> instance containing data of this instance.
            </summary>
        </member>
        <member name="P:DBHelper.SqlClient.SqlTableHelper.FieldsToSelect">
            <summary>
            Sets or gets fields to be retrieved from database.
            </summary>
            <remarks>
            Fields is delimited using semicolon. If all fields needed to be retrieved,
            set this property to null or empty.
            </remarks>
        </member>
        <member name="P:DBHelper.SqlClient.SqlTableHelper.FieldsToUpdate">
            <summary>
            Sets or gets fields to be updated to database.
            </summary>
            <remarks>
            Fields is delimited using semi colon. If all fields (except auto incremented fields)
            needed to be updated, set this property to null.
            </remarks>
        </member>
        <member name="P:DBHelper.SqlClient.SqlTableHelper.SelectCriteria">
            <summary>
            Sets or gets record select criteria.
            </summary>
        </member>
        <member name="P:DBHelper.SqlClient.SqlTableHelper.UpdateCriteria">
            <summary>
            Sets or gets record update criteria.
            </summary>
        </member>
        <member name="P:DBHelper.SqlClient.SqlTableHelper.DeleteCriteria">
            <summary>
            Sets or gets record delete criteria.
            </summary>
        </member>
        <member name="P:DBHelper.SqlClient.SqlTableHelper.CriteriaType">
            <summary>
            Sets or gets criteria type used to perform update and delete database
            operation.
            </summary>
        </member>
        <member name="P:DBHelper.SqlClient.SqlTableHelper.ParentRelations">
            <summary>
            Gets the parent relations.
            </summary>
        </member>
        <member name="P:DBHelper.SqlClient.SqlTableHelper.ChildRelations">
            <summary>
            Gets the child relations.
            </summary>
        </member>
        <member name="P:DBHelper.SqlClient.SqlTableHelper.Sort">
            <summary>
            Specifies the sort criteria used by select command.
            </summary>
            <example>
            <code>
            Sort = "IC ASC";
            </code>
            </example>
        </member>
        <member name="T:DBHelper.SqlClient.SqlTableHelperCollection">
            <summary>
            Class that groups a number of <see cref="T:DBHelper.SqlClient.SqlTableHelper"/> instance.
            </summary>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelperCollection.#ctor">
            <summary>
            Initializes a new instance of <see cref="T:DBHelper.SqlClient.SqlTableHelperCollection"/>.
            </summary>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelperCollection.Add(DBHelper.SqlClient.SqlTableHelper)">
            <summary>
            Adds a <see cref="T:DBHelper.SqlClient.SqlTableHelper"/> instance to collection.
            </summary>
            <param name="objValue">The <see cref="T:DBHelper.SqlClient.SqlTableHelper"/> instance
            to add.</param>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelperCollection.AddRange(DBHelper.SqlClient.SqlTableHelper[])">
            <summary>
            Adds an array of <see cref="T:DBHelper.SqlClient.SqlTableHelper"/> instances to
            collection.
            </summary>
            <param name="aobjValue">An array of <see cref="T:DBHelper.SqlClient.SqlTableHelper"/>
            instances to add.</param>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelperCollection.Remove(DBHelper.SqlClient.SqlTableHelper)">
            <summary>
            Removes a <see cref="T:DBHelper.SqlClient.SqlTableHelper"/> instance from collection.
            </summary>
            <param name="objValue">The <see cref="T:DBHelper.SqlClient.SqlTableHelper"/> instance
            to remove.</param>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelperCollection.Remove(System.String)">
            <summary>
            Removes a <see cref="T:DBHelper.SqlClient.SqlTableHelper"/> instance with the
            specified table name.
            </summary>
            <param name="strTableName">The table name.</param>
            <exception cref="T:DBHelper.DataException.TableHelperNotInTheCollection">
            The <see cref="T:DBHelper.SqlClient.SqlTableHelper"/> instance with the specified
            table name is not in collection.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelperCollection.RemoveAt(System.Int32)">
            <summary>
            Remove a <see cref="T:DBHelper.SqlClient.SqlTableHelper"/> instance with the specified
            index from collection.
            </summary>
            <param name="iIndex">The index to remove.</param>
            <exception cref="T:DBHelper.DataException.TableHelperOutOfRange">
            The specified index to remove is out of range of collection.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelperCollection.Clear">
            <summary>
            Clears the collection.
            </summary>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelperCollection.IndexOf(DBHelper.SqlClient.SqlTableHelper)">
            <summary>
            Get the index of the specified <see cref="T:DBHelper.SqlClient.SqlTableHelper"/> instance.
            </summary>
            <param name="objValue">The <see cref="T:DBHelper.SqlClient.SqlTableHelper"/> instance
            to search for.</param>
            <returns>The 0-based index of the TableHelper instance, or -1 if the instance
            isn't found in the collection.</returns>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelperCollection.IndexOf(System.String)">
            <summary>
            Get the index of <see cref="T:DBHelper.SqlClient.SqlTableHelper"/> with the 
            specified table name.
            </summary>
            <param name="strTableName">The table name to search for.</param>
            <returns>The 0-based index of the TableHelper instance, or -1 if the instance
            isn't found in the collection.</returns>
            <remarks>
            Comparison is case-insensitive.
            </remarks>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelperCollection.InternalIndexOf(System.String)">
            <summary>
            Get the index of <see cref="T:DBHelper.SqlClient.SqlTableHelper"/> instance
            with the specified table name.
            </summary>
            <param name="strTableName">The table name to search for.</param>
            <returns>The 0-based index of the TableHelper instance, or -1 if the instance
            isn't found in the collection, or -2 if 2 or more instances with the same name
            are found. </returns>
            <remarks>
            Comparison is case-insensitive.
            </remarks>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelperCollection.Contains(System.String)">
            <summary>
            Checks whether collection contains the specified table name.
            </summary>
            <param name="strTableName">The table name to search for.</param>
            <returns>True if collection contains the TableHelper instance with the
            specified table name, otherwise False.</returns>
            <remarks>
            Comparison is case-insensitive.
            </remarks>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableHelperCollection.Contains(System.String,System.Boolean)">
            <summary>
            Checks whether the collection contains the specified table name
            with a value specifies the checking is case sensitive or insensitive.
            </summary>
            <param name="strTableName">The table name to search for.</param>
            <param name="bCaseSensitive">Value specifies checking is case sensitive or 
            insensitive.</param>
            <returns>True if collection contains the TableHelper instance with the specified
            table name ortherwise False.</returns>
            <remarks>
            If 2 or more relations with the same name (case insensitive) are found,
            False is returned.
            </remarks>
        </member>
        <member name="P:DBHelper.SqlClient.SqlTableHelperCollection.Item(System.Int32)">
            <summary>
            Gets the <see cref="T:DBHelper.SqlClient.SqlTableHelper"/> instance with 
            the specified index.
            </summary>
            <exception cref="T:DBHelper.DataException.TableHelperOutOfRange">
            The specified index is out of range of collection.
            </exception>
        </member>
        <member name="P:DBHelper.SqlClient.SqlTableHelperCollection.Item(System.String)">
            <summary>
            Gets the <see cref="T:DBHelper.SqlClient.SqlTableHelper"/> instance with 
            the specified table name.
            </summary>
            <remarks>
            Comparison is case insensitive. If no table name is matched, Null is returned.
            </remarks>
            <exception cref="T:DBHelper.DataException.CaseInsensitiveNameConflict">
            2 or more TableHelper instances with same name (case insensitive) are found.
            </exception>
        </member>
        <member name="P:DBHelper.SqlClient.SqlTableHelperCollection.List">
            <summary>
            Gets the collection instance that is used to group
            <see cref="T:DBHelper.SqlClient.SqlTableHelper"/> instances.
            </summary>
        </member>
        <member name="T:DBHelper.SqlClient.SqlTableRelationCollection">
            <summary>
            Class that groups a number of <see cref="T:DBHelper.DBRelation"/> instance related to 
            <see cref="T:DBHelper.SqlClient.SqlTableHelper"/> instance.
            </summary>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableRelationCollection.#ctor(DBHelper.SqlClient.SqlTableHelper,System.Boolean)">
            <summary>
            Initializes a new instance of <see cref="T:DBHelper.SqlClient.SqlTableRelationCollection"/>
            with the specified <see cref="T:DBHelper.SqlClient.SqlTableHelper"/> instance and a value
            specifying whether this collection is parent or child collection.
            </summary>
            <param name="objTable">The <see cref="T:DBHelper.SqlClient.SqlTableHelper"/> instance.</param>
            <param name="bParentCollection">True if parent collection otherwise False
            if child collection.</param>
            <exception cref="T:DBHelper.DataException.RelationTableNull">
            <i>objTable</i> parameter is not provided.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableRelationCollection.AddCache(DBHelper.DBRelation)">
            <summary>
            Adds a <see cref="T:DBHelper.DBRelation"/> instance to collection.
            </summary>
            <param name="objRelation">The relation to add.</param>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableRelationCollection.AddCore(DBHelper.DBRelation)">
            <summary>
            Adds a <see cref="T:DBHelper.DBRelation"/> instance to collection.
            </summary>
            <param name="objRelation">The relation to add.</param>
            <exception cref="T:DBHelper.DataException.ChildTableMismatch">
            Child table in relation is mismatch with this collection's TableHelper
            instance (for parent collection).
            </exception>
            <exception cref="T:DBHelper.DataException.ParentTableMismatch">
            Parent table in relation is mismatch with this collection's TableHelper
            instance (for child collection).
            </exception>
            <exception cref="T:DBHelper.DataException.DuplicateNameException">
            Relation with the same name already exist in collection.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableRelationCollection.RemoveCache(DBHelper.DBRelation)">
            <summary>
            Remove a <see cref="T:DBHelper.DBRelation"/> instance from collection.
            </summary>
            <param name="objRelation">The relation to remove.</param>
            <exception cref="T:DBHelper.DataException.RelationDoesNotExist">
            The relation to remove is not exist.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlTableRelationCollection.RemoveCore(DBHelper.DBRelation)">
            <summary>
            Remove a <see cref="T:DBHelper.DBRelation"/> instance from collection.
            </summary>
            <param name="objRelation">The relation to remove.</param>
            <exception cref="T:DBHelper.DataException.RelationDoesNotExist">
            The relation to remove is not exist.
            </exception>
            <exception cref="T:DBHelper.DataException.ChildTableMismatch">
            Child table in relation is mismatch with this collection's TableHelper
            instance (for parent collection).
            </exception>
            <exception cref="T:DBHelper.DataException.ParentTableMismatch">
            Parent table in relation is mismatch with this collection's TableHelper
            instance (for child collection).
            </exception>
        </member>
        <member name="P:DBHelper.SqlClient.SqlTableRelationCollection.Item(System.Int32)">
            <summary>
            Gets <see cref="T:DBHelper.DBRelation"/> instance with the specified index.
            </summary>
            <exception cref="T:DBHelper.DataException.RelationOutOfRange">
            The specified index is out of range of collection.
            </exception>
        </member>
        <member name="P:DBHelper.SqlClient.SqlTableRelationCollection.Item(System.String)">
            <summary>
            Gets the <see cref="T:DBHelper.DBRelation"/> instance with 
            the specified relation name.
            </summary>
            <remarks>
            Comparison is case insensitive. If no relation name is matched, Null is returned.
            </remarks>
            <exception cref="T:DBHelper.DataException.CaseInsensitiveNameConflict">
            2 or more relations with same name (case insensitive) are found.
            </exception>
        </member>
        <member name="P:DBHelper.SqlClient.SqlTableRelationCollection.List">
            <summary>
            Gets the collection instance that is used to group
            <see cref="T:DBHelper.DBRelation"/> instances.
            </summary>
            <exception cref="T:System.ArgumentNullException">
            <see cref="T:DBHelper.SqlClient.SqlTableHelper"/> instance is not provided.
            </exception>
        </member>
        <member name="T:DBHelper.SqlClient.SqlUtils">
            <summary>
            A class that provides various database helper methods. All methods
            provided are static and specific to SqlClient.
            </summary>
        </member>
        <member name="M:DBHelper.SqlClient.SqlUtils.#ctor">
            <summary>
            Prevents this class from been instanced.
            </summary>
        </member>
        <member name="M:DBHelper.SqlClient.SqlUtils.AttachParameters(System.Data.SqlClient.SqlCommand,System.Data.SqlClient.SqlParameter[])">
            <summary>
            Attaches array of <see cref="T:System.Data.SqlClient.SqlParameter"/>s to a 
            <see cref="T:System.Data.SqlClient.SqlCommand"/>.
            </summary>
            <remarks>
            This method will assign a value of <see cref="T:System.DBNull"/> to any parameter with a direction of
            <see cref="F:System.Data.ParameterDirection.Input"/> or 
            <see cref="F:System.Data.ParameterDirection.InputOutput"/> and a value of null.  
            
            This behavior will prevent default values from being used, but
            this will be the less common case than an intended pure output parameter (derived as InputOutput)
            where the user provided no input value.
            </remarks>
            <param name="cmd">The command to which the parameters will be added.</param>
            <param name="apar">An array of SqlParameters to be added to command.</param>
            <exception cref="T:System.ArgumentNullException">
            <i>cmd</i> parameter is not provided.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlUtils.DetachParameters(System.Data.SqlClient.SqlCommand,System.Data.SqlClient.SqlParameter[])">
            <summary>
            Detaches array of <see cref="T:System.Data.SqlClient.SqlParameter"/>s from a 
            <see cref="T:System.Data.SqlClient.SqlCommand"/>.
            </summary>
            <param name="cmd">The command to which the parameters will be removed.</param>
            <param name="apar">An array of SqlParameters to be removed from command.</param>
            <exception cref="T:System.ArgumentNullException">
            <i>cmd</i> parameter is not provided.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlUtils.AssignParameterValues(System.Data.SqlClient.SqlParameter[],System.Data.DataRow)">
            <summary>
            Assigns row column values to an array of <see cref="T:System.Data.SqlClient.SqlParameter"/>s.
            </summary>
            <param name="apar">Array of SqlParameters to be assigned values.</param>
            <param name="row">The row used to hold the parameter values.</param>
            <exception cref="T:System.Exception">
            Missing parameter name in provided array of parameters.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlUtils.AssignParameterValues(System.Data.SqlClient.SqlParameter[],System.Object[])">
            <summary>
            Assigns an array of values to an array of <see cref="T:System.Data.SqlClient.SqlParameter"/>s.
            </summary>
            <remarks>
            This method assign value to parameters ordinally.<br/>
            <p>
            This method will assign value to <see cref="F:System.Data.ParameterDirection.Input"/> and
            <see cref="F:System.Data.ParameterDirection.InputOutput"/> parameters only. If provided value
            is Null, <see cref="T:System.DBNull"/> will be assigned to parameter.
            </p>
            </remarks>
            <param name="apar">Array of SqlParameters to be assigned values.</param>
            <param name="aobjValues">Array of objects holding the values to be assigned.</param>
            <exception cref="T:System.ArgumentException">
            Total of provided parameters' value are not matched with total of Input and InputOutput parameters.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlUtils.PrepareCommand(System.Data.SqlClient.SqlCommand,System.Data.SqlClient.SqlConnection,System.Data.SqlClient.SqlTransaction,System.Data.CommandType,System.String,System.Data.SqlClient.SqlParameter[],System.Boolean@)">
            <summary>
            Opens (if necessary) and assigns a connection, transaction, command type and parameters 
            to the provided command.
            </summary>
            <param name="cmd">The SqlCommand to be prepared.</param>
            <param name="cnn">A valid SqlConnection, on which to execute this cmd.</param>
            <param name="tra">A valid SqlTransaction, or 'null'.</param>
            <param name="enuCommandType">The enuCommandType (stored procedure, text, etc.).</param>
            <param name="strCommandText">The stored procedure name or T-SQL command.</param>
            <param name="apar">An array of SqlParameters to be associated with the command or 'null' if 
            no parameters are required.</param>
            <param name="bMustCloseConnection">True if the connection was opened by the method, 
            otherwise is False.</param>
            <exception cref="T:System.ArgumentException">
            <i>cmd</i> parameter is not provided,<br/>
            or<br/>
            <i>strCommandText</i> parameter is not provided,<br/>
            or<br/>
            Rollbacked or Commited transaction is provided.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlUtils.GetStoredProcedureReturnValue(System.Data.SqlClient.SqlCommand)">
            <summary>
            Retrieves return value from stored procedure.
            </summary>
            <param name="cmd">A valid SqlCommand which executes the stored procedure.</param>
            <returns>The return value or 0 if no return value is exists.</returns>
            <exception cref="T:System.ArgumentNullException">
            <i>cmd</i> parameter is not provided.
            </exception>
        </member>
        <member name="M:DBHelper.SqlClient.SqlUtils.GetOutputParameterValues(System.Data.SqlClient.SqlCommand)">
            <summary>
            Retrieves value from output parameters.
            </summary>
            <param name="cmd">A valid SqlCommand which executes the T-Sql statement or stored procedure.</param>
            <returns>A Hashtable consists of output parameters' value or zero length Hashtable if
            no output parameters are exist.</returns>
            <exception cref="T:System.ArgumentNullException">
            <i>cmd</i> parameter is not provided.
            </exception>
        </member>
    </members>
</doc>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

falconsoon

Malaysia Malaysia
Had worked as analyst programmer for 4 years. Now helping in family business but still involved actively in .Net development whenever there is a free time.

| Advertise | Privacy | Mobile
Web01 | 2.8.140926.1 | Last Updated 14 Apr 2007
Article Copyright 2007 by falconsoon
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid