来自系统表的查询出错

时间:2014-02-17 09:32:38

标签: c# .net

我想问你一个问题,我有一个查询到系统表。 这是我错的代码。

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);

我需要帮助,因为我不知道查询中的错误是什么。

1 个答案:

答案 0 :(得分:0)

TimeCreated的形式为:

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

您的约会时间是否正确?

查询不应该更像:

Event/System/TimeCreated/@SystemTime

有关示例,请参阅MSDNreading-event-logs-efficiently-using-c

修改

你为什么使用&gt;和lt; ?改变LT;到&lt;

事实证明这是问题所在。