【问题标题】:Windows Search SQL: Semicolon in LIKE statement causes exception (E_FAIL 0x80004005)Windows 搜索 SQL:LIKE 语句中的分号导致异常 (E_FAIL 0x80004005)
【发布时间】:2014-05-26 08:13:36
【问题描述】:

我正在向 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 中搜索保留字符和/或转义,但没有成功。

有什么想法吗?

感谢和问候,

克劳迪奥

【问题讨论】:

  • 你试过用方括号转义分号吗? [;]

标签: asp.net .net windows search


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多