2016-03-31 1 views
0

Ich versuche, 2 Datetime-Parameter in mein Webget zu übergeben, aber ich kann nicht herausfinden, wie es richtig funktioniert Ich werde dir meinen Code unten zeigen und den Fehler bekomme ich vielleicht jemand nows wie das funktioniert.WCF-Datenservice [WebGet] Datetime-Parameter

[WebGet] 
public IQueryable<TestTable> GetCallersByDate(string beginDate, string eindDate) 
{ 
     testCDREntities context = this.CurrentDataSource; 

     DateTime startDt = DateTime.Parse(beginDate); 
     DateTime endDt = DateTime.Parse(eindDate); 



     var selectedOrders = from table in context.TestTables 
          where table.Created >= startDt && table.Created <= endDt 
          select table; 

     return selectedOrders; 
} 

Die url:

http://localhost:50088/WebService.svc/GetCallersByDate?beginDate=2016/03/23T20:22:30:14&eindDate=2016/03/2T20:13:11:03 

ich jemand hoffen kann mir helfen?

+0

Zumindest diese Schrägstriche werden problematisch sein, URL kodieren Sie Ihre Daten. – Crowcoder

Antwort

0

Die nachstehenden Angaben, sollten Sie DateTime.ParseExact statt der üblichen DateTime.Parse

http://localhost:50088/WebService.svc/GetCallersByDate?beginDate=2016/03/23T20:22:30:14&eindDate=2016/03/2T20:13:11:03

Wir yyyy/MM/TTThh sehen, dass das Format des Datums Zeichenfolge verwenden können: mm: ss und AFAIK, dass dieses Format nicht nativer

Begindate = 2016/03/23T20 auf .NET: 22: 30: 14 eindDate = 2016/03/2T20: 13: 11: 03

string dateFormat = "yyyy/MM/ddTHH:mm:ss"; 

DateTime startDt = DateTime.ParseExact(beginDate, dateFormat, CultureInfo.InvariantCulture); 
DateTime endDt = DateTime.Parse(eindDate, dateFormat, CultureInfo.InvariantCulture); 
+0

Vielen Dank für die Hilfe, die Sie sind erstaunlich! –