2011-05-25 62 views
2

我有一個查詢生成器,它使用全文索引進行描述搜索。使用asp.net的全文索引和參數化查詢

查詢是建立和參數化,我想知道從網站表單字段編碼,以通過搜索字符串,如最好的方法:

  1. 通過
  2. 覆蓋「紅」近「黃色 「
  3. 紅」 魚

感謝

+0

待辦事項你的意思是你想編碼參數值,以避免SQL注入和同時支持特殊字符?你的存儲過程的輸入參數是什麼類型? – 2011-05-25 07:52:23

+0

它不使用存儲過程,它是參數化查詢,所以查詢看起來像從y中選擇x,其中q = @ param1。我希望能夠向用戶展示全文索引的強大功能。所以他們可以說給我例如「襯衫」附近有「紅色」的所有東西。 – RubbleFord 2011-05-25 08:01:40

+0

在這個實例中的參數類型是字符串,對不起,在之前的評論中忘記提及。 – RubbleFord 2011-05-25 08:11:24

回答

0

如果你想使用完整的文本•你應該使用where子句與其他特定功能(不只是=或者類似)。

@param1仍然是一個字符串(最終nvarchar);在這裏看到:

Querying SQL Server Using Full-Text Search

例如,以這種方式查詢(從MSDN):

USE AdventureWorks2008R2; 
GO 
DECLARE @SearchWord nvarchar(30) 
SET @SearchWord = N'performance' 
SELECT Description 
FROM Production.ProductDescription 
WHERE CONTAINS(Description, @SearchWord); 

有關特殊字符和逃避他們,只要看看這裏:SQL Server Full Text Search Escape Characters?

+0

這正是我正在做的,但通過上述示例不起作用。 – RubbleFord 2011-05-25 08:49:53

+0

顯示你的SQL,這裏:從y中選擇x,其中q = @param1不起作用,根本不使用全文... CONTAINS在哪裏?你如何執行查詢? – 2011-05-25 08:51:59

+0

對不起,這不是一個很好的例子,我現在用微軟的文章解決了它。然而,全文搜索字符的文章已經解決了這個問題。 – RubbleFord 2011-05-25 09:46:06