我正在尝试查询 Microsoft Indexing Service 目录,我发现了一堆关于它的非常有用的文章(比如这个),但是我发现的每个示例都只是使用字符串连接来构建查询,感觉很不对在这么多不同的层面上。
我显然想使用参数化查询,但看起来 MS 索引提供程序不支持它们,如以下异常所述:
'MSIDXS' 提供程序不支持 ICommandWithParameters 接口。当前提供程序不支持命令参数。
这是我的代码的简化示例。我要做的就是运行一个非常简单的查询,并防止输入错误。
OleDbCommand cmd = new OleDbCommand("select DocTitle, Path from scope() where @friendlyName = '@value'", ActiveConnection());
cmd.Parameters.Add(new OleDbParameter("@friendlyName", friendlyName));
cmd.Parameters.Add(new OleDbParameter("@value", value));
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataSet results = new DataSet();
da.Fill(results);
如果我真的被迫使用字符串连接,那么清理输入的最佳方法是什么?我怎么知道我涵盖了所有案例?