1
내 DB에 뷰가 있으며 뷰에 검색하려고하는 행이 있습니다. 나는 SQL 서버에서 그것을 테스트하고 올바른 결과를 반환했습니다. 그러나 VB에서 매개 변수로 시도 할 때 아무것도 반환하지 않습니다. 내가 쿼리를 얻을 SQL 코드는 매개 변수가있는 SQL은 info.search = "던"와SQL 매개 변수가있는 쿼리가 올바른 결과를 반환하지 않습니다.
SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY groupID DESC) AS Row, *
FROM schedulingGroup_VIEW
WHERE (scheduled = 1) AND
((building LIKE '%' + @search + '%')
OR (room LIKE '%' + @search + '%')
OR (requestBy LIKE '%' + @search + '%')
OR (requestFor LIKE '%' + @search + '%')
OR (groupID LIKE '%' + @search + '%')
OR (description LIKE '%' + @search + '%'))
AND
(NOT EXISTS (SELECT gID FROM facilitiesForm
WHERE facilitiesForm.gID <> gID))) AS TMP WHERE (Row BETWEEN 0 AND 100)
sqlComm.Parameters.AddWithValue("@search", info.search)
과 같은
SELECT *
FROM
(SELECT
ROW_NUMBER() OVER (ORDER BY groupID DESC) AS Row, *
FROM
SchedulingGroup_VIEW
WHERE
(scheduled = 1)
AND ((building LIKE '%dunn%') OR (room LIKE '%dunn%')
OR (requestBy LIKE '%dunn%') OR (requestFor LIKE '%dunn%')
OR (groupID LIKE '%dunn%') OR (description LIKE '%dunn%'))
AND (NOT EXISTS (SELECT gID FROM facilitiesForm
WHERE facilitiesForm.gID <> gID))) AS TMP
WHERE
(Row BETWEEN 0 AND 100)
같은 올바른 결과가 보인다 돌아갑니다.
sql 쿼리는 적절한 행을 반환하지만 매개 변수가있는 vb.net에서는 아무 것도 반환하지 않습니다.
나는 이것을 투표로하고 대답으로 두었습니다. 나는 매개 변수가 두 가지 방법으로 설정되는 것을 보았습니다. 또한 테스트 db를 라이브 미러로 만드는 데 도움이됩니다. 감사. – willJk
이것은 SQL 주입을 방지하기 때문에 더 좋습니다. – sovemp
동일한 문제가 있습니까? – SearchForKnowledge