0

我有我的SQL查詢的問題,我在SQL Server 2008 Express的短信中寫道,並在使用Visual Studio 2010中SQL Server 2008中的SMS與Visual Studio 2010的服務器資源管理器導致

基礎的內部:有一個在網頁上的輸入框。它用於搜索個人姓名,地址,ID等。當我在網站上使用個人姓名或在Visual Studio服務器資源管理器內部使用人名時,例如「Kargul」(製作),它贏得'使用我的存儲過程返回任何結果。 但是,在SQL Server 2008 Express SMS中,相同的存儲過程返回有效結果。

有什麼我失蹤?這裏是我的過程:

SET NOCOUNT ON; 

DECLARE @vars NVARCHAR(50); 
SET @vars = '%' + @searchTerm + '%'; 

SELECT a.PersonId, Stat.StatusId, a.Honorific, a.FirstName, a.LastName, a.Street1, a.Street2, a.City, a.State, a.Zip, a.Phone, a.Email FROM Persons AS a 
JOIN dbo.PersonStatus as Stat 
ON a.StatusId = Stat.StatusId 
    WHERE 
     a.FirstName LIKE (@vars) 
     UNION 
     SELECT a.PersonId, Stat.StatusId, a.Honorific, a.FirstName, a.LastName, a.Street1, a.Street2, a.City, a.State, a.Zip, a.Phone, a.Email FROM Persons AS a 
      JOIN dbo.PersonStatus as Stat 
      ON a.StatusId = Stat.StatusId 
       WHERE 
     a.LastName LIKE (@vars) 
     UNION 
     SELECT a.PersonId, Stat.StatusId, a.Honorific, a.FirstName, a.LastName, a.Street1, a.Street2, a.City, a.State, a.Zip, a.Phone, a.Email FROM Persons AS a 
      JOIN dbo.PersonStatus as Stat 
      ON a.StatusId = Stat.StatusId 
       WHERE 
     a.Street1 LIKE (@vars) 
     UNION 
     SELECT a.PersonId, Stat.StatusId, a.Honorific, a.FirstName, a.LastName, a.Street1, a.Street2, a.City, a.State, a.Zip, a.Phone, a.Email FROM Persons AS a 
      JOIN dbo.PersonStatus as Stat 
      ON a.StatusId = Stat.StatusId 
       WHERE 
     a.City LIKE (@vars) 
     UNION 
     SELECT a.PersonId, Stat.StatusId, a.Honorific, a.FirstName, a.LastName, a.Street1, a.Street2, a.City, a.State, a.Zip, a.Phone, a.Email FROM Persons AS a 
      JOIN dbo.PersonStatus as Stat 
      ON a.StatusId = Stat.StatusId 
       WHERE 
     a.PersonId LIKE (@vars) 
     UNION 
     SELECT a.PersonId, Stat.StatusId, a.Honorific, a.FirstName, a.LastName, a.Street1, a.Street2, a.City, a.State, a.Zip, a.Phone, a.Email FROM Persons AS a 
      JOIN dbo.PersonStatus as Stat 
      ON a.StatusId = Stat.StatusId 
       WHERE 
     a.State LIKE (@vars) 
    ORDER BY PersonId; 

回答

0

在服務器上運行一個profiler跟蹤,以查看通過VS2010運行時執行的操作;有沒有可能搜索參數沒有通過?或者,也許你需要在你的proc中設置NOCOUNT ON。

+0

對不起,我有一個關於proc的SET NOCOUNT ON,我只是將它從示例中排除。我現在添加了它。另外,當我右鍵單擊VS中的Stored Proc並選擇EXECUTE,手動傳入參數時,我在OUTPUT窗口中得到0個結果。 – 2011-05-04 12:58:46

相關問題