2016-03-28 26 views
1

Ben bu yolu, bana hata vermek çünkünasıl filtrelenir datatable

DataTable dataTable = ReportsBLL.GetProducts() as DataTable; 
HttpContext.Current.Cache["productinfokey"] = dataTable; 
System.Web.HttpContext.Current.Cache.Insert("productinfokey", dataTable, null, DateTime.Now.AddHours(1), System.Web.Caching.Cache.NoSlidingExpiration); 

Bazen

dataTable.Select("CreateDate >= " + DateTime.Now.AddMonths(-3) + " and CreateDate <= " + DateTime.Now + "") 

olarak Datatable filtrelemek gerekiyor ama nasıl o veriler mülke göre filtreleyebilirsiniz bellekte kayıtlıdır bu datatable Syntax error: Missing operand after '05' operator.

Datatable

0 doldurulan

Burada sorun nedir ve bunu nasıl çözebilirim?

+0

sözdizimi [buradan] açıklanmıştır (https://msdn.microsoft com/en-us/kütüphane/system.data.datacolumn.expression (v = vs.110) .aspx). –

cevap

1

Bu:

"CreateDate >= " + DateTime.Now.AddMonths(-3) 

böyle bir şey üretmek istiyorum (tabii kültür ayarlarına bağlı olarak, ama bu burada önemli değil):

sözdizimi hatası olduğunu
CreateDate >= 12/28/2015 

. Tarih değerleri tırnak içinde sarılı gereken:

CreateDate >= '12/28/2015' 

Yani dizede bunun hesabını gerekir:

"CreateDate >= '" + DateTime.Now.AddMonths(-3) + "'"