private static SQLServerDBProvider NewProvider_Internal(string commandText, string connectionString, CommandType commandType)
        {
            SQLServerDBProvider provider = new SQLServerDBProvider();
            try
            {

                provider.Connection = new SqlConnection(connectionString);

                provider.Connection.Open();

                //Increment our counter for the number of open connections
                SQLServerDBProvider.numberOfCurrentlyOpenConnections++;

                provider.Command = provider.Connection.CreateCommand();
                provider.Command.CommandType = commandType;
                provider.Command.CommandText = commandText;
            }
            catch (ArgumentException e)
            {
                throw (new Exception(e.Message));
            }
            catch (SqlException e)
            {
                throw (new Exception(e.Message));
            }
            return provider;
        }
        private static SQLServerDBProvider NewDataSetProvider_Internal(string deleteStoredProcedureName,
                                                    string insertStoredProcedureName,
                                                    string selectStoredProcedureName,
                                                    string updateStoredProcedureName,
                                                    string connectionString, bool withTransaction)
        {
            SQLServerDBProvider provider = new SQLServerDBProvider();
            try
            {
                provider.Connection = new SqlConnection(connectionString);
                provider.Connection.Open();

                // Increment our counter for the number of open connections
                SQLServerDBProvider.numberOfCurrentlyOpenConnections++;

                SqlCommand command = provider.Connection.CreateCommand();
                command.CommandType = CommandType.StoredProcedure;
                command.CommandText = selectStoredProcedureName;

                provider.DataAdapater = new SqlDataAdapter(command);

                command = provider.Connection.CreateCommand();
                command.CommandType = CommandType.StoredProcedure;
                command.CommandText = deleteStoredProcedureName;
                provider.DataAdapater.DeleteCommand = command;

                command = provider.Connection.CreateCommand();
                command.CommandType = CommandType.StoredProcedure;
                command.CommandText = insertStoredProcedureName;
                provider.DataAdapater.InsertCommand = command;

                command = provider.Connection.CreateCommand();
                command.CommandType = CommandType.StoredProcedure;
                command.CommandText = updateStoredProcedureName;
                provider.DataAdapater.UpdateCommand = command;

                if (withTransaction)
                {
                    command.Transaction = provider.sqlTransaction = provider.Connection.BeginTransaction();
                    provider.DataAdapater.DeleteCommand.Transaction = provider.sqlTransaction;
                    provider.DataAdapater.InsertCommand.Transaction = provider.sqlTransaction;
                    provider.DataAdapater.UpdateCommand.Transaction = provider.sqlTransaction;
                }
            }
            catch (ArgumentException e)
            {
                throw (new Exception(e.Message));
            }
            catch (SqlException e)
            {
                throw (new Exception(e.Message));
            }
            return provider;
        }