繁体   English   中英

Windows Search SQL:LIKE语句中的分号导致异常(E_FAIL 0x80004005)

[英]Windows Search SQL: Semicolon in LIKE statement causes exception (E_FAIL 0x80004005)

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

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

当我运行此代码时,在最后一行抛出异常,代码为“ E_FAIL 0x80004005”。 如果我从LIKE语句中删除分号,则所有功能都像一个超级字符,但是显然我没有预期的结果,因为我真的只需要标题对应于给定字符串的文档。

我尝试在Windows Search SQL中搜索保留字符和/或转义,但是没有运气。

任何想法?

谢谢并恭祝安康,

克劳迪奥

我发现Windows Search API不支持Like运算符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM