[原创]解决DataSet的GetXml()方法空列不返回问题

在一个DataSet中添加Table后,如果Table中存在列为空的情况,则GetXml不会把空列返回,这就造成了,在统一处理Table中的数据时,获取相关列的数据错误,

试过好几种方法,都没有达到预期的效果,先来看下DataSet的GetXml方法返回的数据格式

<NewDataSet>
<Table1>
<OID>20002</OID>
<NAME>sfsfsfsf</NAME>
<ISUSED>1</ISUSED>
<TASKTYPE>1</TASKTYPE>
<TASKDATE>2011-11-27</TASKDATE>
<TASKTIME>19:36:15</TASKTIME>
</Table1>
<Table1>
<OID>20001</OID>
<NAME>测试1</NAME>
<ISUSED>1</ISUSED>
<TASKTYPE>1</TASKTYPE>
<TASKDATE>2011-12-27</TASKDATE>
<TASKTIME>16:44:15</TASKTIME>
</Table1>
<Table2>
<OID>20001</OID>
<TASKOID>20001</TASKOID>
<PLUGINSID>PanERP.WF.FlowEngine.GetTask</PLUGINSID>
<ISUSED>1</ISUSED>
<ORDERNO>1</ORDERNO>
</Table2>
<Table3>
<PLUGINSOID>20001</PLUGINSOID>
<PARAMID>taskID</PARAMID>
<ORDERNO>0</ORDERNO>
</Table3>
</NewDataSet>

这个格式相对比较简单,干脆自己写个方法实现以下,免得查找资料浪费太多时间,废话不多说,上代码才是王道

        /// <summary>
/// 获取DataSet的Xml格式
/// </summary>
/// <param name="tableName">名称 Table1</param>
/// <param name="table">DataTable</param>
private string GetDataSetXml(string tableName, DataTable table)
{
string str = string.Empty;
for (int i = 0; i < table.Rows.Count; i++)
{
str += "<" + tableName + ">";
for (int j = 0; j < table.Columns.Count; j++)
{
string clName = table.Columns[j].ColumnName;
str += "<" + clName + ">" + table.Rows[i][clName].ToString() + "</" + clName + ">";
}
str += "</" + tableName + ">";
}
return str;
}



转载于:https://www.cnblogs.com/xiangboren/archive/2011/12/27/2303922.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值