在webmatrix中的2个日期之间搜索

时间:2013-09-06 18:43:12

标签: razor sql-server-ce webmatrix

我需要在Webmatrix中的两个日期之间获得搜索结果。我不知道如何进入搜索或我做错了什么。这是我的代码。我没有收到任何错误,但网格中只显示列名。

@{
Layout = "~/_SiteLayout.cshtml";
Page.Title = "Management";
var db = Database.Open("OMD");
var startdate = Request["startdate"];
var enddate = Request["enddate"];
var selectCommand ="SELECT * FROM Ordr Where Date BETWEEN '" + startdate + "' AND '" + enddate + "'";
var selectedData = db.Query(selectCommand);
var grid = new WebGrid(source: selectedData, defaultSort: "Date", rowsPerPage:10);
}

   @grid.GetHtml(
    columns:grid.Columns(
        grid.Column("Date", format:@<Text>@item.Date</Text>),
        grid.Column("Status", format:@<Text>@item.Status</Text>),
        grid.Column("OStore", format:@<Text>@item.OStore</Text>),
        grid.Column("CStore", format:@<Text>@item.CStore</Text>),
        grid.Column("Employee", format:@<Text>@item.Employee</Text>)
    )
    )

我正在搜索格式MM / DD / YYYY,就像它在表格中一样。

2 个答案:

答案 0 :(得分:3)

以下是使用Razor Database辅助参数约定安全地执行此操作的方法:

var db = Database.Open("OMD");
var startdate = Request["startdate"].AsDateTime();
var enddate = Request["enddate"].AsDateTime();
var selectCommand ="SELECT * FROM Ordr Where Date >= @0 AND Date <= @1";
var selectedData = db.Query(selectCommand, startdate, enddate);

有关在ASP.NET网页(Razor)中使用数据的更多信息,请阅读此内容:http://www.asp.net/web-pages/tutorials/data/5-working-with-data

答案 1 :(得分:0)

  

我正在搜索格式MM / DD / YYYY,就像它在表格中一样。

这是一种常见的误解。 date(和datetime)数据类型不存储格式化日期(dd / mm / yyyy是您看到的格式)。

如果您正在使用日期的字符串表示(您在这里),那么您应该将其格式化为:

YYYY-MM-DD HH:MI:SS.NNN

这是一种通用格式,可以解决您遇到的问题。

另一种方法是参数化您的查询并传递日期对象