我目前正在使用此代码片段来检索将从我的标量查询返回的一个xml值。
using (SqlDataReader reader = sqlCommand.ExecuteReader())
{
while (reader.Read())
{
SqlXml xml = reader.GetSqlXml(0);
XmlSchema xmlSchema = XmlSchema.Read(xml.CreateReader(), validationEvent);
break;
}
}
我更愿意使用sqlCommand.ExecuteScalar()
,但似乎这样做意味着将xml带回String
这对我来说似乎是错误的,因为我对{{{{{{ 1}}。
答案 0 :(得分:1)
答案 1 :(得分:1)
实际上,通过运行ExecuteNonQuery,您只能返回一个int(存储过程的返回值)。除ExecuteScalar外,您有2个选项:
ExecuteXMLReader
使用输出参数(我更倾向于使用Scalar)
答案 2 :(得分:0)
来自SqlDbType.Xml上的MSDN文档
XML值。获取XML作为 使用GetValue方法的字符串或 Value属性,或者作为XmlReader 调用CreateReader方法。
因此,您将以现有代码结束,或者使用ExecuteScalar将xml作为字符串返回,您必须将其解析为xml对象。