我需要检查提供的关键字是否存在于数据库中某个日期的日期名称中。我已经通过使用动态查询来做到这一点。
ArrayList paramList = new ArrayList();
int paramCount = 0;
StringBuilder queryString = new StringBuilder();
if (keyword != null)
{
queryString.Append(" and ClosureDate.Value.DayOfWeek.ToString().ToUpper().Contains(@" + paramCount + ")");
paramList.Add(this.Keyword.ToUpper());
paramCount++;
}
var abc= _context.ABC.Where(t => t.RecordStatus == 1).Select(t => t).OrderByDescending(t => t.Created).AsQueryable();
abc= abc.AsQueryable().Where(queryString[0].ToString(), searchArgs.ToArray());
此ToString()在这里造成问题。我尝试了其他方法,但是没有运气。有人可以帮忙吗?
答案 0 :(得分:0)
您可以如下编写SQL查询。
DECLARE @Dates TABLE
(
ProductID INT IDENTITY(1,1),
Dates DATETIME
)
INSERT INTO @Dates (Dates)
VALUES (GETDATE())
,(GETDATE()-1)
,(GETDATE()-2)
,(GETDATE()-3)
,(GETDATE()-4)
,(GETDATE()-5)
SELECT Dates
FROM @Dates
SELECT Dates,DATENAME(WEEKDAY,Dates) AS DayOfWeek
FROM @Dates
然后在C#/ MVC / ASP.Net App中使用类似.Where(t => t.DayOfWeek.Contains(“ Monday”))之类的东西来过滤结果集。