我打電話的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
爲什麼使用XML? – SLaks 2010-09-17 17:14:49
我同意SLaks。 XML和SQL服務器是兩件事情,它們本來就不應該是「集成的」。 – NotMe 2010-09-17 17:22:34