加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

【转】MS SQLSERVER SELECT FOR XML 中字符的限制问题

发布时间:2020-12-12 15:17:01 所属栏目:MsSql教程 来源:网络整理
导读:采用sqlcommand返回单行的值这种方式查询的xml长度不能超过8000个字符。 ? ssql = "select * from " + tablename + " FOR XML AUTO,ELEMENTS";????? ??????????????? SqlCommand command = new SqlCommand(ssql,connection); ??????????????? resultXml = (s

采用sqlcommand返回单行的值这种方式查询的xml长度不能超过8000个字符。

?

ssql = "select * from " + tablename + " FOR XML AUTO,ELEMENTS";?????
??????????????? SqlCommand command = new SqlCommand(ssql,connection);
??????????????? resultXml = (string)SqlHelper.ExecuteScalar(connection,CommandType.Text,ssql);
查msdn发现
  如果您使用 ExecuteReader 或 BeginExecuteReader 访问 XML 数据,SQL Server 将以多行(每行 2,033 个字符)方式返回长度大于 2,033 个字符的所有 XML 结果。若要避免发生此行为,请使用 ExecuteXmlReader 或 BeginExecuteXmlReader 读取 FOR XML 查询。有关更多信息,请参见位于 http://support.microsoft.com/default.aspx?ln=zh-cn 上的 Microsoft 知识库中的文章 Q310378“PRB: XML Data Is Truncated When You Use SqlDataReader”(PRB:使用 SqlDataReader 时 XML 数据被截断)。

改为

1?????????? ssql = "select * from " + tablename + " FOR XML AUTO,ELEMENTS";?????
2??????????????? SqlCommand command = new SqlCommand(ssql,connection);
3??????????????? System.Xml.XmlReader reader = command.ExecuteXmlReader();
4??????????????? reader.MoveToContent();
5??????????????? resultXml = reader.ReadOuterXml();
6

搞定。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jasonfqw/archive/2010/01/27/5261541.aspx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读