Searching records between two dates is very simple. In here, we will see how we can perform this using a stored procedure with Entity Framework in ASP.NET MVC.
Step 1. Open SQL Server Management Studio and create a table named 'Employee'.
CREATE TABLE [dbo].[Employee] (
[Id] [int] NOT NULL,
NULL,
NULL,
[JoiningDate] [date] NULL,
PRIMARY KEY CLUSTERED
(
[Id] ASC
) WITH (
PAD_INDEX = OFF,
STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON
) ON [PRIMARY]
) ON [PRIMARY];
GO
SET ANSI_PADDING OFF;
GO
Step 2. Create a stored procedure to find the data between two dates.
CREATE PROC [dbo].[Usp_Empsearch]
@Fromdate DATETIME,
@Todate DATETIME
AS
BEGIN
SELECT *
FROM Employee
WHERE JoiningDate BETWEEN @Fromdate AND @Todate;
END
Step 3. Open Visual Studio and create a new project.
![Open Visual Studio]()
Change the name to SearchRecord and select MVC as its template.
Step 4. Right-click the Models folder from Solution Explorer and go to Add >> New Item >> data.
![Solution Explorer]()
Select EF designer from the database and click the "Next" button.
![EF designer]()
Add the connection properties and select the database name on the next page followed by a click on OK.
Check the table and stored procedure checkboxes. The internal options will be selected by default. Now, click the "Finish" button.
![Stored procedure checkboxes]()
Our data model is created now.
Step 5. Right-click on Edmx, add New >Function Import >enter the name and import function and table. Now, click on the "Get column information" option.
![Function Import]()
Step 6. Now, right-click on the Controllers folder and add a new MVC controller named 'SearchController'.
Add the following code to that.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace SearchRecord.Controllers
{
public class SearchController : Controller
{
// GET: Search
public ActionResult Index()
{
Test1Entities1 DB = new Test1Entities1();
return View(DB.Employees.ToList());
}
[HttpPost]
public ActionResult Index(DateTime From, DateTime To)
{
Test1Entities1 DB = new Test1Entities1();
return View(DB.SearchData(From, To));
}
}
}
Step 7. Right-click on the Index method and add a View.
![Index method]()
Step 8. Now, add a form in the View and two date pickers. Add the following code in this View.
@model IEnumerable<SearchRecord.Employee>
@{
ViewBag.Title = "Index";
}
@section scripts {
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
<script src="~/Scripts/bootstrap-datepicker.js"></script>
<script src="~/Scripts/bootstrap-datepicker.min.js"></script>
<link href="~/Content/bootstrap-datepicker.css" rel="stylesheet" />
<link href="~/Content/bootstrap-datepicker.min.css" rel="stylesheet" />
<script type="text/javascript">
var $j = $.noConflict(true);
</script>
<script type="text/javascript">
$j("#datepicker").datepicker({
autoclose: true,
todayHighlight: true,
format: "dd/mm/yyyy"
});
</script>
<script type="text/javascript">
$j("#datepicker1").datepicker({
autoclose: true,
todayHighlight: true,
format: "dd/mm/yyyy"
});
</script>
}
<div>
<div class="row">
<div class="col-sm-12 btn btn-success">
How to search records between two dates using stored procedure, Entity Framework in ASP.NET MVC
</div>
</div>
</div>
<br /><br />
<div class="container">
@using (Html.BeginForm("Index", "Search", FormMethod.Post))
{
<div class="row">
<div class="col-sm-2 text-lg-left">
<label>From Date</label>
</div>
<div class="col-sm-3">
<input type="text" id="datepicker" name="From" class="form-control" placeholder="Select Date" />
</div>
<div class="col-sm-2">
<label>To Date</label>
</div>
<div class="col-sm-3">
<input type="text" id="datepicker1" name="To" class="form-control" placeholder="Select Date" />
</div>
<div class="col-sm-2">
<input type="submit" value="Search" class="btn btn-primary form-control" />
</div>
<br /><br />
</div>
<div class="row">
<table class="table table-bordered">
<tr>
<th style="width:33%">
@Html.DisplayNameFor(model => model.Name)
</th>
<th style="width:33%">
@Html.DisplayNameFor(model => model.City)
</th>
<th style="width:33%">
@Html.DisplayNameFor(model => model.JoiningDate)
</th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.City)
</td>
<td>
@Html.DisplayFor(modelItem => item.JoiningDate)
</td>
</tr>
}
</table>
</div>
}
</div>
Step 9. Run the project and check the result.
![Result]()
Summary
In this article, we learned how to search records between two dates using the stored procedure, Entity Framework in ASP.NET MVC.