如何在asp.net linq中根据日期范围从数据库中获取记录
我已经开发了一个小型的web应用程序,我正在使用实体框架。我想根据日期范围获取记录,并在gridview中绑定该数据。我如何使用linq编写查询。请帮助我。我在这里发布了我的代码,我试图获取记录。请如何在asp.net linq中根据日期范围从数据库中获取记录,asp.net,linq-to-sql,c#-4.0,Asp.net,Linq To Sql,C# 4.0,我已经开发了一个小型的web应用程序,我正在使用实体框架。我想根据日期范围获取记录,并在gridview中绑定该数据。我如何使用linq编写查询。请帮助我。我在这里发布了我的代码,我试图获取记录。请 var query = from p in entity.Payments join D in entity.Debit_Method on p.Debit_Method_ID equals D.Debit_Method_ID
var query = from p in entity.Payments
join D in entity.Debit_Method on p.Debit_Method_ID equals D.Debit_Method_ID
join pt in entity.Payment_Type on p.Payment_Type_ID equals pt.Payment_Type_ID
where p.Client_Pmt_Date >='1998-12-01' && p.Client_Pmt_Date<='1999-08-01' && p.Loan_ID=loanid
select new
{
p.Pmt_ID,
p.Loan_ID,
p.Client_Pmt_Date,
p.MtgSvr_Pmt_Start_Date2,
D.Debit_Method_Desc,
p.Total_Debit_Amt,
p.CreditAmt,
p.LenderAmt,
pt.Payment_Type_Desc,
p.Return_Code,
p.Returned_Date
//p.Pmt_ID,
// D.Debit_Method_Desc,
// pt.Payment_Type_Desc,
// p.Client_Pmt_Date,
// p.MtgSvr_Pmt_Start_Date2,
// p.Amt,
// p.CreditAmt,
// p.Loan_ID,
// p.Pmt_Comments
// p.Loan_ID,
};
grdPayments.DataSource = query.ToList();
grdPayments.DataBind();
}
var query=来自实体中的p。付款
在p上的entity.Debit\u方法中加入D。Debit\u方法\u ID等于D.Debit\u方法\u ID
将pt加入p.Payment\U Type上的实体.Payment\U Type\U ID等于pt.Payment\U Type\U ID
当p.Client\u Pmt\u Date>='1998-12-01'&&p.Client\u Pmt\u Date时,需要将日期与日期时间对象(而不是字符串)进行比较。下面是一个使用POCO(普通旧CLR对象)的LINQ示例:
var dates=new List{new DateTime(2011,1,1),new DateTime(2010,1,1),new DateTime(2009,1,1)};
var result1=从x开始,在xnew DateTime(2009,1,1)的日期中选择x;
var result2=日期,其中(x=>x<新日期时间(2011,1,1)和&x>新日期时间(2009,1,1));
您好,谢谢您的回复..我想使用联接获取记录,那么,我如何编写查询?您能帮助我吗?您需要将>='1998-12-01'替换为>=新日期时间(1998,12,1)我尝试使用替换新日期时间(1998,12,1)编写代码,但此处和(&&&&)不被接受。。。。
var dates = new List<DateTime> { new DateTime(2011, 1, 1), new DateTime(2010, 1, 1), new DateTime(2009, 1, 1) };
var result1 = from x in dates where x < new DateTime(2011, 1, 1) && x > new DateTime(2009,1,1) select x;
var result2 = dates.Where(x => x < new DateTime(2011, 1, 1) && x > new DateTime(2009,1,1));