在将DataSet转成XML时遇到一个非法字符的问题

正在开发一个web service,其中有个web method要返回一个xml document,里面包含若干节点,分别存储不同的数据,其中一个是从数据库中查询的结果集。先执行SQL查询,得到DataSet,然后将DataSet转换为XML,插入我的xml返回文档的特定节点GetContacts下面

                cmd.CommandText = "select PK_nUserId,UserFName + ' ' + ISNULL(UserLName,'') as /"Name/", " +
                        " PK_nUserType, UserTypeName, UserPrimaryEmail, UserAlias, UserOrganization " +
                        "from vwUsersAndContacts order by Name";
                ds = new DataSet("GetContactList");
                ad.Fill(ds);
                ds.Tables[0].TableName = "userlist";
                node = root.SelectSingleNode("GetContacts");
                node.InnerXml = ds.GetXml();

原来程序执行正常,今天突然不工作了,调用这个web method后报错: xml parser failed at xxx line xxxx position reason is: Illegal xml character.

检查一下,发现这个数据字段是乱吗,不知道怎么存进去的,但因为这个数据字段的值正好是xml 无法处理的字符,小于0x20.所以出现这个错误。

将数据库中的数据改正后,问题没有了。今后在DataSet转换前,需要一种方法来检测字符的合法性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值