当前位置:编程学习 > C#/ASP.NET >>

C#使用DataSet转成XML的问题

C#DataSet.WriteXML()方法生成XML,但数据库某些列的值为null ,就不会输出,连标签都没,例:<id></id>  这个怎么解决;求助 --------------------编程问答-------------------- 那就自己写xml吧任何东西都有他的局限性 --------------------编程问答--------------------
引用 1 楼 bdmh 的回复:
那就自己写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#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,