Преобразование даты и времени приводит к исключению значения вне диапазона - PullRequest
0 голосов
/ 17 мая 2019

У меня есть исключение, когда я пытаюсь вызвать метод, который принимает в качестве даты дату. При развертывании того же приложения на другой машине страница загружается хорошо. Мне нужно понять, является ли это проблемой с кодом или конфигурацией Sql Server. Если они - изменение, я должен сделать к моему форматированию даты в Контроллере. Я попытался настроить все имена входа SQL Server для использования английского языка в качестве языка по умолчанию, но безрезультатно. Другие руководства указывают на приведение типа данных DateTime в соответствующем SP. Однако код, с которым я работаю, использует Raw SQL. У меня есть идея, что преобразование в операторе SQL для PayPeriod может быть реорганизовано, но я не уверен, к какому типу данных.

В моем методе контроллера я вызываю у меня:

        ....

        if (Convert.ToString(formcollection["PayDayId"]) != null)
        {
            payrun.PayDayId = Convert.ToInt32(formcollection["PayDayId"]);

            Session["PayDayId"] = payrun.PayDayId;


            DateTime Today = DateTime.Today;
            var startdate = new DateTime(Today.Year, Today.Month, 1);
            var enddate = startdate.AddMonths(1).AddDays(-1);


            using (SqlConnection conn1 = new SqlConnection(Helpers.DatabaseConnect))
            {

                SqlCommand cmd1 = new SqlCommand("SELECT PayDayDate FROM PayDayCode WHERE PayDayId= " + Convert.ToInt32(Session["PayDayId"]) + "", conn1);

                conn1.Open();
                SqlDataReader dr1 = cmd1.ExecuteReader();
                while (dr1.Read())
                {
                    payrun.PayDayDate = Convert.ToInt32(dr1["PayDayDate"]);

                }

                conn1.Close();
            }


            int day = (int)System.DateTime.Now.Day;



            using (SqlConnection conn1 = new SqlConnection(Helpers.DatabaseConnect))
            {

                SqlCommand cmd1 = new SqlCommand("SELECT * FROM PayRun WHERE PayPeriod= '"+Convert.ToDateTime(enddate)+"'", conn1);

                conn1.Open();
                SqlDataReader dr1 = cmd1.ExecuteReader();
                if (dr1.Read())
                {
                    ViewBag.ErrorMessage = Helpers.Messages.AlreadyProcessSalaryForThisMonth;
                    return View(payrun);

                }

                conn1.Close();
            }

            return RedirectToAction("PayRun");


        }

        else
        {
            ViewBag.ErrorMessage = Helpers.Messages.NoPayCodeSelected;
            return View(payrun);
        }


    }

Когда я запускаю страницу с другого компьютера, она хорошо выглядит, как показано ниже: DateType

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...