2009-08-24 11 views
0

Ich möchte bitte Daten aus einer XML-Datei basierend auf Benutzereingaben mit Datum abrufen. Ich möchte das Benutzereingabedatum mit dem Datum in der xml-Datei vergleichen und wenn es größer ist als das XML-Datum, sollte es es abrufen. Meine Linq Abfrage sieht so aus Dank im Voraus.Arbeiten mit Daten in linq zu xml

XDocument xmlDoc = XDocument.Load(Server.MapPath("xml/data1.xml")); 

var hotels = from hotel in xmlDoc.Descendants("Table") 
      where Double.Parse(pplTextBox.Text) <= Double.Parse(hotel.Element("NO_OF_PEOPLE").Value) && 
      DateTime.Parse(DateTextFrom.Text) > DateTime.Parse(hotel.Element("DATE_TO").Value) 
      select new 
      { 
       RoomCost = hotel.Element("ROOM_COST").Value, 
       RoomType = hotel.Element("ROOM_TYPE").Value, 
       HotelName = hotel.Element("HOTEL_NAME").Value, 
       NoOfPeople = hotel.Element("NO_OF_PEOPLE").Value, 
       Smoking = hotel.Element("SMOKING").Value, 
       Restaurant = hotel.Element("RESTAURANT").Value, 
       //Location = hotel.Element("HOTEL_AREA").Value, 
       //AvailableDate = hotel.Element("DATE_TO").Value 
      }; 

    GridView1.DataSource = hotels.ToList(); 
    GridView1.DataBind(); 
+0

Ja - und was ist das Problem? Sie scheinen bereits in Ihrer XLINQ-Abfrage nach dem Datum zu suchen. Was ist deine Frage? –

+0

Es liegt ein Fehler vor, wenn das Datum vom Benutzerende ausgewählt wird und wenn die Verfügbarkeitsprüfung zum Abrufen gedrückt wird. Es gibt einen Datetime-Parse-Fehler. String wurde nicht als gültige DateTime erkannt. – user161314

+0

WAS gibt der Benutzer ein? Welche Schnur? Es ist wahrscheinlich wirklich nur ein String-to-DateTime-Konvertierungsproblem, das überhaupt nichts mit Linq-To-XML zu tun hat ....... –

Antwort

0

können Sie verwenden?

AvailableDate = (hotel.Element("DATE_TO").Value > inputDate) ? 
        hotel.Element("DATE_TO").Value : inputDate 
+0

funktioniert nicht mit AvailableDate, gibt es irgendwelche Referenzen, die ich hinzufügen muss? Danke im Voraus. – user161314