当我尝试从文本框中通过SqlDataSource
输出到gridview进行简单搜索时,我在标题中收到错误。如果我搜索 123 ,它将返回ID为123的记录。如果我搜索 aaa ,则返回错误。任何人都知道为什么???数据库看起来像这样:
id int (primary key / identity)
struser nvarchar(50)
SQL语句如下所示:
SELECT id, struser
FROM ticket
WHERE (id = @id) OR (struser = @struser)
答案 0 :(得分:1)
您可以使用案例陈述,下面假设您没有-1
的ID值:
SELECT id, struser FROM ticket WHERE (id = CASE ISNUMERIC(@id) WHEN 1 THEN CONVERT(int,@id) ELSE -1 END) OR (struser = @struser)
答案 1 :(得分:0)
尝试将其投放到varchar
,但我认为它将不再使用索引。
WHERE (CAST(id AS VARCHAR(20)) = @id)
答案 2 :(得分:0)
尝试
SELECT id, struser
FROM ticket
WHERE (CONVERT(VARCHAR,id) = @id ) OR (struser = @struser)