2016-09-21 81 views
0

我试图在我的网站上创建一个搜索文本框,比提交时会将'string-keyword'传入我的网格并将所有匹配记录该关键字。T-SQL查询搜索表格字段中的“关键字”

我不得不使用where语句来设置我的网格,它将“侦听”通过查询字符串通过表单传入的参数。

我不知道如何解决这个问题。任何见解,提示,例子表示赞赏。

UPDATE ------- 这是我的网格用来填充记录的查询。除了城市/地区/国家/地区,我正在尝试加入一个关键字搜索,它只会查看BND_Listing表格中我的“公司”字段。

select * FROM BND_listing right join BND_ListingCategories 
on BND_Listing.CatID=BND_ListingCategories.CatID 
where 
(CategoryName = '[querystring:filter-Category]' or '[querystring:filter-  Category]'='All') 
and 
(City = '[querystring:filter-City]' or '[querystring:filter-City]'='All') 
and 
(Region= '[querystring:filter-State]' or '[querystring:filter-State]'='All') 
and 
(Country= '[querystring:filter-Country]' or '[querystring:filter- Country]'='All') 
and 
isnull(Company,'') <> '' 
ORDER by Company ASC 

回答

1

我不知道你所说的“听”的参数,是什么意思,但因为你只有TSQL标记,在SQL Server中的匹配部分实现,像这样:

DECLARE @param VARCHAR(256) --or what ever size you need 
SET @param = 'some text' 

SELECT SomeColumns 
FROM SomeTable 
WHERE aColumn LIKE '%' + @param + '%' 

或者使用在VB中你可以检查出SqlCommandhttps://stackoverflow.com/a/251311/6167855

+0

感谢这个例子。我将不得不花一点时间阅读以了解正在发生的事情。我必须修改它以从我的应用程序中提取令牌。一旦我得到它将会更新。 – UserSN

+1

传递什么?数据库中的令牌看起来像什么? @AlexP – scsimon

+0

我的表单允许我运行一个查询并添加一个查询字符串参数,如?keyworkd = [Field1],其中field1将被替换为搜索框中输入的内容。从这我需要修改我的网格的where语句来拉取我的表“公司名称”字段中匹配[field1]的任何内容,并仅返回这些结果。这是我想像得到的结果吗?这就是我迄今为止对城市/州/区域所做的工作,区别在于选择框是一个搜索框,可以在其中输入一个字符串,该字符串可能不一定完全匹配1行或多行数据。 – UserSN