У меня есть исключение, когда я пытаюсь вызвать метод, который принимает в качестве даты дату. При развертывании того же приложения на другой машине страница загружается хорошо. Мне нужно понять, является ли это проблемой с кодом или конфигурацией 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);
}
}
Когда я запускаю страницу с другого компьютера, она хорошо выглядит, как показано ниже: