[英]C# linq how to search data between two date
我正在Windows基础应用程序上工作,我想在两个日期之间搜索详细信息,因此在使用linq查询。
我的查询是:
mealsdbEntities objEntity = new mealsdbEntities();
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-CA");
DateTime OrderFromDate = DateTime.Parse(dtOrderFDate.Value.ToString("MM/dd/yyyy"));
DateTime OrderToDate = DateTime.Parse(dtOrderToDate.Value.ToString("MM/dd/yyyy"));
DateTime DelFromDate = DateTime.Parse(dtOrderDelFDate.Value.ToString("MM/dd/yyyy"));
DateTime DelToDate = DateTime.Parse(dtOrderDelTDate.Value.ToString("MM/dd/yyyy"));
var OrderList = (from ol in objEntity.orders
join cust_Con in objEntity.customermasters
on ol.customer_id equals cust_Con.id
join cust_Cont in objEntity.customercontacts
on ol.customer_id equals cust_Cont.customer_id
join oDish in objEntity.orderdishes
on ol.id equals oDish.order_id
where cust_Con.company_name.Contains("" + txt_Cust_name.Text + "")
&& (EntityFunctions.TruncateTime(OrderFromDate) == OrderFromDate)
//>= OrderFromDate) && (ol.createdon <= OrderToDate))
//&& (ol.deliverydate >= DelFromDate && ol.deliverydate <= DelToDate)
select new
{
ID = ol.id,
Title = ol.title,
Name = cust_Con.company_name,
Phone = cust_Cont.contact_phone,
// Item = disgcateg.dish_name,
DeliveryDate = ol.deliverydate,
DeliveryTime = ol.deliverytime,
Amount = ol.orderamount,
Status = ol.status
}).ToList();
但我收到一个错误:
System.Data.Entity.dll中发生了类型为'System.Data.EntityCommandExecutionException'的未处理异常
附加信息:执行命令定义时发生错误。 有关详细信息,请参见内部异常。
谁能告诉我我哪里错了?
您可以使用linq lambda
var startDate = new DateTime(2017, 1, 1);
var endDate = new DateTime(2017, 12, 31);
//this includes the last day
var endDatePlus = endDate.AddDays(1);
.Where(obj => obj.StartDate >= startDate && obj.EndDate < endDatePlus).ToList();
试试这个查询
var OrderList = (from ol in objEntity.orders
join cust_Con in objEntity.customermasters
on ol.customer_id equals cust_Con.id
join cust_Cont in objEntity.customercontacts
on ol.customer_id equals cust_Cont.customer_id
join oDish in objEntity.orderdishes
on ol.id equals oDish.order_id
where cust_Con.company_name.Contains("" + txt_Cust_name.Text + "")
&& (OrderFromDate.Date == OrderFromDate.Date)
//>= OrderFromDate) && (ol.createdon <= OrderToDate))
//&& (ol.deliverydate >= DelFromDate && ol.deliverydate <= DelToDate)
select new
{
ID = ol.id,
Title = ol.title,
Name = cust_Con.company_name,
Phone = cust_Cont.contact_phone,
// Item = disgcateg.dish_name,
DeliveryDate = ol.deliverydate,
DeliveryTime = ol.deliverytime,
Amount = ol.orderamount,
Status = ol.status
}).ToList();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.