У меня есть таблица с датами и именем, и у меня есть 2 даты Datum1 и Datum2, когда пользователи вставляют для ограничения результатов между этими двумя датами, но это не работает. Эти 2 даты находятся в отдельной модели, и я создал отдельный контроллер.Мне не нужно сохранять эти даты в моей базе данных только для ограничения выходных данных. Вот мой контроллер:
[HttpGet]
// GET: PregledPoDatumu
public ActionResult Index()
{
DataTable dtblRezultat = new DataTable();
PregledPoDatumu pregledPoDatumu = new PregledPoDatumu();
using (SqlConnection sqlCon = new SqlConnection(
ConfigurationManager.ConnectionStrings["TestCS"].ConnectionString))
{
sqlCon.Open();
SqlDataAdapter sqlDa = new SqlDataAdapter("SELECT * FROM Kontrola ORDER BY Datum", sqlCon);
sqlDa.Fill(dtblRezultat);
}
return View(dtblRezultat);
}
[HttpGet]
// GET: PregledPoDatumu/Create
public ActionResult Create()
{
return View(new PregledPoDatumu());
}
// POST: PregledPoDatumu/Create
[HttpPost]
public ActionResult Create(PregledPoDatumu pregledPoDatumu)
{
DataTable dtblRezultat = new DataTable();
using (SqlConnection sqlCon = new SqlConnection(
ConfigurationManager.ConnectionStrings["TestCS"].ConnectionString))
{
sqlCon.Open();
if (pregledPoDatumu.Datum1 > pregledPoDatumu.Datum2)
{
ModelState.AddModelError("Datum1", "start date must be before end date");
return View();
}
if(pregledPoDatumu.Datum1 > DateTime.Now)
{
ModelState.AddModelError("Datum1", "Unesite datum prije današnjeg");
return View();
}
if(pregledPoDatumu.Datum2 > DateTime.Now)
{
ModelState.AddModelError("Datum2", "Unesite datum do današnjeg");
return View();
}
if(pregledPoDatumu.Datum1 == DateTime.MinValue){
ModelState.AddModelError("Datum1", "Unesite datum ");
return View();
}
if (pregledPoDatumu.Datum2 == DateTime.MinValue)
{
ModelState.AddModelError("Datum2", "Unesite datum ");
return View();
}
string query = "SELECT * FROM Kontrola where Datum > @Datum1 and Datum < @Datum2";
SqlDataAdapter sqlDa = new SqlDataAdapter(query, sqlCon);
sqlDa.SelectCommand.Parameters.AddWithValue("@Datum1", pregledPoDatumu.Datum1);
sqlDa.SelectCommand.Parameters.AddWithValue("@Datum2", pregledPoDatumu.Datum2);
sqlDa.Fill(dtblRezultat);
}
return RedirectToAction("Index");
}
Что я должен изменить, чтобы, когда пользователь входит 01.01.2014 и 01.01.2017показывать только результаты между этими двумя датами?В этом случае я сделал мою таблицу не обновляется и по-прежнему показывает все результаты в таблице?
Модель:
namespace WebApplication6.Models
{
public class PregledPoDatumu
{
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
[DataType(DataType.Date)]
public DateTime Datum1 { get; set; }
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
[DataType(DataType.Date)]
public DateTime Datum2 { get; set; }
}
}