/// <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; } }