嗨,我很难读取存储过程返回的XML,我想通过在SQL Server上执行该过程来获取想要的XML
我的存储过程:
CREATE PROCEDURE [dbo].[GetUser]
@Username nvarchar(50)
AS
select( SELECT * FROM "User"
WHERE "User".Username = @Username
FOR XML AUTO, ELEMENTS, ROOT('Users')) AS result
这里是我的C#代码:
using (var conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConString"].ConnectionString))
using (SqlCommand cmd = new SqlCommand("[GetUser]", conn))
{
cmd.Parameters.AddWithValue("@Username", Username);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
conn.Open();
XmlReader reader = cmd.ExecuteXmlReader();
}
读者不断获得“无”的价值我做错了什么,请帮忙 我只想要XML作为字符串
希望可以为您提供帮助
谢谢
答案 0 :(得分:1)
您得到了读者,但没有阅读:
using (var xmlReader = cmd.ExecuteXmlReader())
{
while(xmlReader.Read())
{
string s = xmlReader.ReadOuterXml();
}
}
但是即使那样也可能会有问题,因为会给您一个字符串。 This link may give more details。如果您由于工作XPathDocument
而缺少信息,则可能需要与ReadOuterXml
合作。