C#使用DataSet转成XML的问题

xiao793 2011-01-28 10:57:16
C#DataSet.WriteXML()方法生成XML,但数据库某些列的值为null ,就不会输出,连标签都没,例:<id></id> 这个怎么解决;求助
...全文
383 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
我2我骄傲 2011-01-31
  • 打赏
  • 举报
回复
null值是不会转化为节点的。
动手加吧
_三皮_ 2011-01-31
  • 打赏
  • 举报
回复
自己写个方法,把DataSet转XML,逐行转,很灵活,随你折腾
cjh200102 2011-01-28
  • 打赏
  • 举报
回复
你可以在结果集转成XML前判断。也就是在SQL下就替换NULL
路人乙e 2011-01-28
  • 打赏
  • 举报
回复
public void DataSetToXml(DataSet ds, string filename){
StringBuilder sb = new StringBuilder();
sb.Append("<?xml version=\"1.0\" ?>");
sb.Append("<DataSet>");
foreach (DataTable dt in ds.Tables)
{
sb.AppendFormat("<Table Name=\"{0}\">", dt.TableName);
foreach (DataRow row in dt.Rows)
{
sb.Append("<Row>");
foreach (DataColumn col in dt.Columns)
{
sb.AppendFormat("<{0}>{1}</{0}>", col.ColumnName, row[col.ColumnName]);
}
sb.Append("</Row>");
}
sb.Append("</Table>");
}
sb.Append("</DataSet>");
File.WriteAllText(filename, sb.ToString());
}
路人乙e 2011-01-28
  • 打赏
  • 举报
回复
没有节点不会吧?
l171147904 2011-01-28
  • 打赏
  • 举报
回复
那获取 DataSet 的时候:
(csse 字段 when is null then '' else 字段 end) as 字段
billsquall 2011-01-28
  • 打赏
  • 举报
回复
用XML序列化反序列化来处理呢?
maycxd 2011-01-28
  • 打赏
  • 举报
回复
1楼正解,虽然没遇到这种情况。
手动给XML添加节点,也不是什么太繁琐的事
宝_爸 2011-01-28
  • 打赏
  • 举报
回复
这应该不是DataSet.WriteXML的问题,而是使用输出的xml的程序的问题。
rabbitlzx 2011-01-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bdmh 的回复:]

那就自己写xml吧任何东西都有他的局限性
[/Quote]+1
bdmh 2011-01-28
  • 打赏
  • 举报
回复
那就自己写xml吧任何东西都有他的局限性
billsquall 2011-01-28
  • 打赏
  • 举报
回复
啊,这个意思啊,我原来也发现这个问题,不过我就是不想要没值的,原来可以这样强制出来,学习了
机器人 2011-01-28
  • 打赏
  • 举报
回复
最简单的是给DataTable每一列的Column的DefaultValue赋值。
比如string类型的列赋予string.Empty。这样这一列就不会被忽略了。
wuyq11 2011-01-28
  • 打赏
  • 举报
回复
某字段为null此时保存到xml中的节点将不会显示
可以将保存xml的字段类型设置为image等类型

http://stackoverflow.com/questions/2169723/handling-null-in-writexml

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧