将DataTable转换为XML时处理Null Value [英] Handle Null Value when converting DataTable to XML
本文介绍了将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屋!
查看全文