2010-09-17 105 views
2

我打電話的SQL服務器上的存儲過程是這樣的:調用存儲過程返回任何

SqlConnection conn = new SqlConnection(); 
SqlCommand cmd; 
XmlDocument xmlDocument; 
XmlReader xr; 
XmlNode node; 
SqlDataReader rdr = null; 

try 
{ 
    xmlDocument = new XmlDocument(); 
    conn.ConnectionString = "Data Source=test;Initial Catalog=teste;Integrated Security=SSPI;"; 
    cmd = new SqlCommand(); 
    cmd.Connection = conn; 
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.CommandText = "[dbo].[spSearchKeywords]"; 

    cmd.Parameters.Add(new SqlParameter("@VALUE", "XPT")); 

    conn.Open(); 

    xr = cmd.ExecuteXmlReader(); 

    conn.Close(); 
    node = xmlDocument.ReadNode(xr); 
} 

及其連接和執行命令,但它沒有返回 有數據返回和參數是否正確(當我用同樣的參數調用SQL程序返回我的結果)

這裏是PROC:

ALTER PROCEDURE [dbo].[spSearchKeywords] 
(
    @VALUE     NVARCHAR(50) = NULL, 
    @ACCOUNTGROUPID   NVARCHAR(50) = NULL, 
    @ShortCodeId   NVARCHAR(50) = NULL, 
    @VALUETYPE    NVARCHAR(50) = NULL, 
    @ASSEMBLY    NVARCHAR(100) = NULL, 
    @ASSEMBLYCONTAINSURI NCHAR (10) = NULL, 
    @ASSEMBLYTYPE   NVARCHAR(50) = NULL 
) 
AS 
BEGIN 

    SET NOCOUNT ON; 

    SELECT [Value] 
      ,[AccountGroupId] 
      ,[ShortCodeId] 
      ,[ValueType] 
      ,[assembly] 
      ,[assemblyContainsUri] 
      ,[assemblyType] 
     FROM [teste].[dbo].[keywords] 
    WHERE [Value]     = ISNULL(@VALUE,    [Value]) 
     AND [AccountGroupId]   = ISNULL(@ACCOUNTGROUPID,  [AccountGroupId]) 
     AND [ShortCodeId]   = ISNULL(@SHORTCODEID,   [ShortCodeId]) 
     AND [ValueType]    = ISNULL(@VALUETYPE,   [ValueType]) 
     AND [assembly]    = ISNULL(@ASSEMBLY,   [assembly]) 
     AND [assemblyContainsUri] = ISNULL(@ASSEMBLYCONTAINSURI, [assemblyContainsUri]) 
     AND [assemblyType]   = ISNULL(@ASSEMBLYTYPE,  [assemblyType]) 
    FOR XML AUTO 
END 
+3

爲什麼使用XML? – SLaks 2010-09-17 17:14:49

+0

我同意SLaks。 XML和SQL服務器是兩件事情,它們本來就不應該是「集成的」。 – NotMe 2010-09-17 17:22:34

回答

8

則無法關閉在實際使用XmlReader之前進行連接。嘗試將conn.Close()放在node = xmlDocument.ReadNode(xr);以下。並考慮您的一次性數據庫對象的using聲明。

+1

我也在考慮這些方面。感到驚訝的是,在這種情況下也不例外。 – 2010-09-17 17:14:38

+1

大聲笑,我知道這真是個白癡,謝謝你! – yuneyev 2010-09-17 17:16:47

+0

@Kirk Woll:你會拋出什麼異常? – NotMe 2010-09-17 17:23:18