0

SqlDataSourceテキストボックスからグリッドビューへの出力を介して単純な検索を実行しようとすると、タイトルにエラーが表示されます。123を検索すると、ID123のレコードが返されます。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 に答える