将DataTable转换为XML时处理Null Value [英] Handle Null Value when converting DataTable to XML

查看:211
本文介绍了将DataTable转换为XML时处理Null Value的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

亲爱的所有人,



我使用MDX查询从DataTable导出XML。

它正在完美地创建XML文件。 />
但如果单元格值为null,则表示不创建Node。

即如果Row [0] [1] value = null,则表示不创建节点。 br $>


编码

Dear All,

I am using MDX Query to Export XML from DataTable.
It is creating XML file perfectly.
but if the cell value is null,it is not creating Node.
i.e if the Row[0][1]value=null,then it is not creating node.

Coding

String connetionString = "Data Source=;provider=msolap;Connect Timeout=120;Initial Catalog=T_Analytics_database";
       AdomdConnection connection = new AdomdConnection(connetionString);
       AdomdDataAdapter adapter;


       DataTable dt=new DataTable("test");

       string sql = "SELECT  CROSSJOIN({[Time].[Year].[Year]},   {[Time].[Month].[Month]},{[Measures].[MAX Newsletter], [Measures].[OLS Application],[Measures].[Total Traded Demos], [Measures].[Total Initial Deposits],[Measures].[Webinar], [Measures].[Total Funded Accounts] })  ON COLUMNS,NON EMPTY({[Match Type].[Match Type].[Match Type]}) ON ROWS FROM [Assigned Form Submission]";
       string XMLfilPath = @"D:\Manas\Productnew.xml";

       try
       {
           connection.Open();
           adapter = new AdomdDataAdapter(sql, connection);
           adapter.Fill(dt);

           for (int i = 0; i < dt.Columns.Count; i++)
           {
               dt.Columns[i].AllowDBNull = true;
               dt.Columns[i].ColumnName = "c" + i;
           }
           dt.WriteXml(XMLfilPath);
           connection.Close();
           Response.Write("success");
       }
       catch (Exception ex)
       {
           Response.Write(ex.ToString());

       }

推荐答案

尝试此链接中的解决方案。



http://devlicio.us/blogs/derik_whittaker/archive/2008/10/06/save-dataset-contents-to-xml-and-null-values.aspx [ ^ ]
Try the solution in this link.

http://devlicio.us/blogs/derik_whittaker/archive/2008/10/06/save-dataset-contents-to-xml-and-null-values.aspx[^]


大家好,

这是代码。





Hi All,
this is the code.


String connetionString = "Data Source=;provider=msolap;Connect Timeout=120;Initial Catalog=T_Analytics_database";
        AdomdConnection connection = new AdomdConnection(connetionString);
        AdomdDataAdapter adapter;          
        DataTable dt=new DataTable();     
        string sql = "SELECT  CROSSJOIN({[Time].[Year].[Year]},   {[Time].[Month].[Month]},{[Measures].[MAX Newsletter], [Measures].[OLS Application],[Measures].[Total Traded Demos], [Measures].[Total Initial Deposits],[Measures].[Webinar], [Measures].[Total Funded Accounts] })  ON COLUMNS,NON EMPTY({[Match Type].[Match Type].[Match Type]}) ON ROWS FROM [Assigned Form Submission]";
        connection.Open();
        adapter = new AdomdDataAdapter(sql, connection);
        adapter.Fill(dt);
        using (XmlWriter writer = XmlWriter.Create(@"D:\Manas\now.xml"))
        { writer.WriteStartDocument();
            writer.WriteStartElement("Root");
            for (int i = 0; i < dt.Rows.Count; i++)
            { 
                writer.WriteStartElement("Test");
                for (int j = 0; j < dt.Columns.Count; j++) 
                {                   
                    writer.WriteStartElement("c"+j);
                    string sss = dt.Rows[i][j].ToString();
                    writer.WriteValue(sss);
                    writer.WriteEndElement();
                } 
                writer.WriteEndElement();          
            }
            writer.WriteEndElement();
            writer.WriteEndDocument();
        }


我已经使用带数据表的xmlwriter解决了这个问题。
i have solved this using xmlwriter with datatable.


这篇关于将DataTable转换为XML时处理Null Value的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆