2014-02-17 116 views
0

我想問你一個問題,我有一個查詢到系統表。 這是我錯了的代碼。系統表查詢錯誤

string current_query = "*[(System[TimeCreated[@SystemTime > '" + dateini + "']]) and (System[TimeCreated[@SystemTime < '" + datenext + "']])]"; 
Console.WriteLine(current_query); 

EventLogQuery eventsQuery = new EventLogQuery(log_location, PathType.FilePath, current_query); 
EventLogReader logReader = new EventLogReader(eventsQuery); 

dateini和datenext是日期時間變量。我認爲問題是我讀了兩次表。但我需要閱讀兩次,因爲我需要獲取一整天系統的日誌,我想我必須比較兩個系統時間。

任何建議如何重建諮詢。

更新: 我嘗試此查詢具有相同的結果。

string current_query = "*[(Event/System/TimeCreated/@SystemTime > " + dateini + ") and (Event/System/TimeCreated/@SystemTime < " + datenext + ")]"; 
Console.WriteLine(current_query); 

EventLogQuery eventsQuery = new EventLogQuery(log_location, PathType.FilePath, current_query); 
EventLogReader logReader = new EventLogReader(eventsQuery); 

請問我需要幫助,因爲我不知道哪個是查詢中的錯誤。

+0

你會得到什麼例外? –

+0

不受控制的異常:System.Diagnostics.Eventing.Reader.EventLogException:指定的查詢無效 –

回答

0

TimeCreated的形式爲:

<TimeCreated SystemTime="2013-08-15T16:21:21.000000000Z" /> 

是你的日期時間是否正確?

不應該查詢更喜歡:

Event/System/TimeCreated/@SystemTime 

的一些例子見MSDNreading-event-logs-efficiently-using-c

編輯

你爲什麼要使用>和LT; ?改變lt;到<

原來是這個問題。

+0

我的DateTime正確,字符長度相同。 –

+0

我已更新我的第一篇文章。請我需要更多幫助。感謝您的回覆。 –

+0

@JoseM。你爲什麼使用>和lt; ?改變lt;到<。如果這不解決它試試這個(系統[TimeCreated [@SystemTime> xs:dateTime(「2014-02-16T12:00:00」)]] –