Asp.net Windows搜索SQL:LIKE语句中的分号导致异常(E_FAIL 0x80004005)

Asp.net Windows搜索SQL:LIKE语句中的分号导致异常(E_FAIL 0x80004005),asp.net,.net,windows,search,Asp.net,.net,Windows,Search,我正在向windows搜索引擎查询ASP.NET web应用程序中的某些文档。 我正在查找标题中包含字符串“IT”的所有文档(除其他条件外,从下面的示例中删除)。 我正在使用ADO.NET,因此我的代码看起来像这样(去掉了一些不重要的细节): var connString=“Provider=Search.CollatorDSO;”+ “扩展属性='Application=Windows';”; var conn=新的OLEDB连接(connString); conn.Open(); Strin

我正在向windows搜索引擎查询ASP.NET web应用程序中的某些文档。 我正在查找标题中包含字符串“IT”的所有文档(除其他条件外,从下面的示例中删除)。 我正在使用ADO.NET,因此我的代码看起来像这样(去掉了一些不重要的细节):

var connString=“Provider=Search.CollatorDSO;”+
“扩展属性='Application=Windows';”;
var conn=新的OLEDB连接(connString);
conn.Open();
StringWriter wSql=新建StringWriter();
WriteLine(“选择System.Title、System.Filename、System.Keywords,”+
System.Size、System.ItemPathDisplay、System.ItemUrl、+
“System.Search.Rank、System.DateCreated、System.DateModified”+
“来自SYSTEMINDEX,其中System.Title类似“;IT%”;
var cmd=新的OleDbCommand(wSql.ToString(),conn);
var适配器=新的OleDbDataAdapter(cmd);
var result=新数据集();

适配器。填充(结果,“文档”);// 我发现Windows Search API不支持Like运算符。

是否尝试用方括号转义分号<代码>[;]
var connString = "Provider=Search.CollatorDSO;" + 
                 "Extended Properties='Application=Windows';";
var conn = new OleDbConnection(connString);

conn.Open();
StringWriter wSql = new StringWriter();
wSql.WriteLine("SELECT System.Title, System.Filename, System.Keywords, " + 
               "System.Size, System.ItemPathDisplay, System.ItemUrl, " +
               "System.Search.Rank, System.DateCreated, System.DateModified " + 
               "FROM SYSTEMINDEX WHERE System.Title LIKE '%; IT%'");

var cmd = new OleDbCommand(wSql.ToString(), conn);

var adapter = new OleDbDataAdapter(cmd);
var result = new DataSet();
adapter.Fill(result, "doc");  // <== HERE THE RUNTIME EXPLODES