0

SqlDataSource尝试从文本框通过输出到网格视图进行简单搜索时,我在标题中出现错误。如果我搜索123,它应该返回 ID 为 123 的记录。如果我搜索aaa它会返回错误。有人知道为什么吗???数据库如下所示:

id       int           (primary key / identity)
struser  nvarchar(50)

SQL 语句如下所示:

SELECT id, struser 
FROM ticket 
WHERE (id = @id) OR (struser = @struser)
4

3 回答 3

1

您可以使用 case 语句,下面假设您没有 id 值-1

SELECT id, struser FROM ticket WHERE (id = CASE ISNUMERIC(@id) WHEN 1 THEN CONVERT(int,@id) ELSE -1 END) OR (struser = @struser)
于 2012-11-22T16:14:37.357 回答
0

尝试将其转换为,varchar我认为它不再使用索引。

WHERE (CAST(id AS VARCHAR(20)) = @id)
于 2012-11-22T16:08:53.010 回答
0

尝试

SELECT id, struser 
FROM ticket 
WHERE (CONVERT(VARCHAR,id) = @id ) OR (struser = @struser)
于 2012-11-22T16:14:50.100 回答