2014-02-17 3 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는 DateTime 변수입니다. 문제는 내가 두 번 읽었다는 것입니다. 그러나 하루 종일 시스템의 로그를 가져와야하기 때문에 두 번 읽어야합니다. 두 시스템 시간을 비교해야한다고 생각합니다.

상담 내용을 리메이크하는 방법에 대한 제안.

업데이트 : 동일한 결과를 사용하여이 쿼리를 시도합니다.

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; ~ <. 그게 해결되지 않으면 그냥 시도해보십시오. (System [TimeCreated [@SystemTime> xs : dateTime ("2014-02-16T12 : 00 : 00")]] –

관련 문제