数据库
首页 > 数据库> > 可以从类型为SqlDbType.Xml的输出SqlParameter创建XmlReader吗?

可以从类型为SqlDbType.Xml的输出SqlParameter创建XmlReader吗?

作者:互联网

这是我的参数定义:

var param = new SqlParameter
{
    ParameterName = "@param",
    SqlDbType = SqlDbType.Xml,
    Direction = ParameterDirection.Output,
    Size = int.MaxValue
};
command.Parameters.Add(param);

然后我做:

command.ExecuteNonQuery();

最后:

XmlSerializer serializer = new XmlSerializer(typeof(MyClass));
return serializer.Deserialize(
    new MemoryStream(Encoding.UTF8.GetBytes(param.Value.ToString())))
    as MyClass;

我真的需要转换为字符串,然后转换为字节数组吗?

解决方法:

使用Parameter.SqlValue,将返回SqlXml实例,您可以使用CreateReader获取XML阅读器.然后使用XmlSerializer.Deserialize(XmlReader)覆盖.

如果XML很大,则应考虑使用CommandBehavior.SequentialAccess.

标签:xml-serialization,sqlparameter,sql,c,net
来源: https://codeday.me/bug/20191102/1994602.html