Я пытаюсь запросить каталог службы индексирования Microsoft, и я нашел кучу действительно полезных статей об этом (например, этот ), но в каждом найденном примере они просто используют конкатенацию строк строить запросы, и на разных уровнях это кажется неправильным.
Я явно хочу использовать параметризованные запросы, но похоже, что поставщик MS Indexing их не поддерживает, как описано в следующем исключении:
Интерфейс ICommandWithParameters не поддерживается поставщиком 'MSIDXS'. Параметры команды не поддерживаются текущим провайдером.
Вот упрощенный пример моего кода. Все, что я хочу сделать, это запустить действительно простой запрос и защитить от неправильного ввода.
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);
Если я действительно вынужден использовать конкатенацию строк, каков наилучший способ очистки входных данных? Как я узнаю, что покрыл все дела?