有没有更好的方法从数据库中读取一个xml值

时间:2009-12-22 18:05:32

标签: c# .net sql-server xml

我目前正在使用此代码片段来检索将从我的标量查询返回的一个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}}。

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

实际上,通过运行ExecuteNonQuery,您只能返回一个int(存储过程的返回值)。除ExecuteScalar外,您有2个选项:

  1. ExecuteXMLReader

  2. 使用输出参数(我更倾向于使用Scalar)

答案 2 :(得分:0)

来自SqlDbType.Xml上的MSDN文档

  

XML值。获取XML作为   使用GetValue方法的字符串或   Value属性,或者作为XmlReader   调用CreateReader方法。

因此,您将以现有代码结束,或者使用ExecuteScalar将xml作为字符串返回,您必须将其解析为xml对象。