簡體   English   中英

對存儲過程的調用什么都不返回

[英]call to stored procedure returns nothing

我在sql server上調用一個存儲過程,如下所示:

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

在實際使用XmlReader之前,無法關閉連接。 嘗試刪除conn.Close()以下node = xmlDocument.ReadNode(xr); 並考慮一次性數據庫對象的using語句。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM