예제 #1
0
        /// <summary>
        /// метода заполнения таблицы заказчиков
        /// </summary>
        /// <remarks>
        /// <para>ID Decimal</para>
        /// <para>LastName Nvarchar(64)</para>
        /// <para>FirstName Nvarchar(64)</para>
        /// <para>MiddleName Nvarchar(64)</para>
        /// <para>Sex Nvarchar(32)</para>
        /// <para>BirthDate DateTime</para>
        /// <para>RegistrationDate DateTime</para>
        /// </remarks>
        public void FillCustomerTables()
        {
            /// инициализируем генератор случайных чисел
            Random rnd = new Random();
            /// инициализируем даты { рождения, регистрации }
            DateTime newDate, newDateReg = new DateTime();
            /// инициализируем дату начала генерации дат рождения заказчиков
            DateTime date = new DateTime(1990, 1, 1);
            /// инициализируем дату начала генерации дат регистрации заказчиков
            DateTime dateReg = new DateTime(2012, 1, 1);
            /// инициализируем диапазон дат рождения заказчиков
            int rangeDate = (DateTime.Today - date).Days;
            /// инициализируем диапазон дат регистрации заказчиков
            int rangeReg = (DateTime.Today - dateReg).Days;
            /// инициализируем объект подключения к БД
            var conn = App.DbConn;

            /// инициализируем строку запроса заполнения таблицы заказчиков
            string customerSql =
                "INSERT INTO dbo.Customers(ID,LastName,FirstName,MiddleName,Sex,BirthDate,RegistrationDate) " +
                "VALUES(@arg1,@arg2,@arg3,@arg4,@arg5,@arg6,@arg7)";

            try
            {
                /// проверка на подключение к БД
                if (App.DbConn != null)
                {
                    /// цикл потока запросов заполнения таблицы заказчиков
                    for (decimal numUser, i = 0; i < mCountUsers_; ++i)
                    {
                        /// задаем дату рождения заказчика
                        newDate = date.AddDays(rnd.Next(rangeDate));
                        /// задаем дату регистрации заказчика
                        newDateReg = dateReg.AddDays(rnd.Next(rangeReg));

                        /// инициализируем запрос в БД
                        SqlCommand cmd = new SqlCommand(customerSql, conn);
                        /// задаем пареметр запроса в БД -> идентификатор заказчика
                        cmd.Parameters.AddWithValue("@arg1", i);
                        /// выбираем пол заказчика ( случайно )
                        if (Convert.ToBoolean(rnd.Next(0, 2)))
                        {
                            /// задаем пареметр запроса в БД -> фамилия заказчика ( мужские )
                            cmd.Parameters.AddWithValue("@arg2", mMaleLastNames_.GetValue(rnd.Next(10)));
                            /// задаем пареметр запроса в БД -> имя заказчика ( мужские )
                            cmd.Parameters.AddWithValue("@arg3", mMaleFirstNames_.GetValue(rnd.Next(10)));
                            /// задаем пареметр запроса в БД -> отчество заказчика ( мужские )
                            cmd.Parameters.AddWithValue("@arg4", mMaleMiddleNames_.GetValue(rnd.Next(10)));
                            /// задаем пареметр запроса в БД -> пол заказчика ( мужские )
                            cmd.Parameters.AddWithValue("@arg5", mSex_.GetValue(0));
                        }
                        else
                        {
                            /// задаем пареметр запроса в БД -> фамилия заказчика ( женские )
                            cmd.Parameters.AddWithValue("@arg2", mFemaleLastNames_.GetValue(rnd.Next(10)));
                            /// задаем пареметр запроса в БД -> имя заказчика ( женские )
                            cmd.Parameters.AddWithValue("@arg3", mFemaleFirstNames_.GetValue(rnd.Next(10)));
                            /// задаем пареметр запроса в БД -> отчество заказчика ( женские )
                            cmd.Parameters.AddWithValue("@arg4", mFemaleMiddleNames_.GetValue(rnd.Next(10)));
                            /// задаем пареметр запроса в БД -> пол заказчика ( женские )
                            cmd.Parameters.AddWithValue("@arg5", mSex_.GetValue(1));
                        }
                        /// задаем пареметр запроса в БД -> дата рождения заказчика
                        cmd.Parameters.AddWithValue("@arg6", newDate);
                        /// задаем пареметр запроса в БД -> дата регистрации заказчика
                        cmd.Parameters.AddWithValue("@arg7", newDateReg);

                        /// задаем номер заказчика
                        numUser = i + 1;
                        /// выполняем запрос в БД по заполнению таблицы заказчиков ( потоково )
                        mDBWorker.ExecuteStreamQuery(conn, cmd, numUser, mCountUsers_);
                        /// передаем прогресс создания заказчиков в форму отображения создания заказчиков
                        mNumCustomer_.Report(Convert.ToInt32(numUser));

                        /// пауза в процессе, для корректоного отображения прогресса в форме отображения создания заказчиков
                        Thread.Sleep(100);
                    }
                }
                /// выдаем сообщение об отсутствии подключения к БД
                else
                {
                    Exception ex = new Exception("Database connection is empty");
                }
            }
            /// отлавливаем исключение
            catch (System.Exception ex)
            /// выдаем исключение
            { throw ex; }
        }