Как создать asp.net запрос свободного текста набора данных

#asp.net #sql-server #full-text-search #freetext

#asp.net #sql-сервер #полнотекстовый поиск #freetext

Вопрос:

У меня есть база данных с настройкой полнотекстового каталога для одной из моих таблиц, и цель состоит в том, чтобы иметь возможность выполнять поиск свободного текста по этой таблице из asp.net веб-сайт на языке c#. Используя SQL Management Studio, я могу вручную запускать запросы, такие как:

 SELECT ProductName
FROM   Products
WHERE FREETEXT(ProductName, 'ABC')
  

Но когда я добавляю SQL-запрос в dataset и передаю ему параметр следующим образом

 SELECT ProductName
FROM   Products
WHERE FREETEXT(ProductName, @ProductName)
  

мастер возвращает ошибку

 The @ProductName SQL construct or statement is not supported
  

Как я могу создать запрос dataset со строгим типом, который поддерживает полнотекстовый поиск?

Комментарии:

1. Можете ли вы показать свой код?

2. @Keith Я использую мастер для добавления запросов к dataset в Visual Studio, кода нет, так как он генерируется автоматически. Обычно я могу создавать запросы с помощью [ГДЕ ABC = @ABC], но когда я меняю условие на [ГДЕ FREETEXT(ProductName, @ProductName)] — мастер возвращает сообщение об ошибке.

Ответ №1:

Попытался создать процедуру хранения с параметром и вызвать ее из мастера добавления запросов. Он по-прежнему выдает сообщение, но работает просто хорошо.

 CREATE PROCEDURE [dbo].[sp_FreetextProductName] 
    @ProductName nvarchar(500)
AS
BEGIN
    SELECT ProductName
    FROM   Products
    WHERE FREETEXT(ProductName, @ProductName)
END