C#使用DataSet转成XML的问题
C#DataSet.WriteXML()方法生成XML,但数据库某些列的值为null ,就不会输出,连标签都没,例:<id></id> 这个怎么解决;求助 --------------------编程问答-------------------- 那就自己写xml吧任何东西都有他的局限性 --------------------编程问答-------------------- +1 --------------------编程问答-------------------- 这应该不是DataSet.WriteXML的问题,而是使用输出的xml的程序的问题。 --------------------编程问答-------------------- 1楼正解,虽然没遇到这种情况。手动给XML添加节点,也不是什么太繁琐的事 --------------------编程问答-------------------- 用XML序列化反序列化来处理呢? --------------------编程问答-------------------- 那获取 DataSet 的时候:
(csse 字段 when is null then '' else 字段 end) as 字段 --------------------编程问答-------------------- 没有节点不会吧?
--------------------编程问答-------------------- 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());
} --------------------编程问答-------------------- 你可以在结果集转成XML前判断。也就是在SQL下就替换NULL --------------------编程问答-------------------- 某字段为null此时保存到xml中的节点将不会显示
可以将保存xml的字段类型设置为image等类型
http://stackoverflow.com/questions/2169723/handling-null-in-writexml --------------------编程问答-------------------- 最简单的是给DataTable每一列的Column的DefaultValue赋值。
比如string类型的列赋予string.Empty。这样这一列就不会被忽略了。 --------------------编程问答-------------------- 啊,这个意思啊,我原来也发现这个问题,不过我就是不想要没值的,原来可以这样强制出来,学习了 --------------------编程问答-------------------- 自己写个方法,把DataSet转XML,逐行转,很灵活,随你折腾 --------------------编程问答-------------------- null值是不会转化为节点的。
动手加吧
补充:.NET技术 , C#