DataTable与XML文档互转

文示例C#中XML与datatable互换的两个函数:


/// <summary> 
/// 可以序列化为xml文件保存起来 
/// </summary> 
/// <param name="mydt">datatable(必须指定TableName,否则转换失败)</param> 
/// <param name="Filename">指定XML文件名</param> 
public void SerializeDataTableXmlFile(DataTable mydt,string Filename) 

// Insert code to set properties and fields of the object. 
XmlSerializer mySerializer = new XmlSerializer(typeof(DataTable));
 
// To write to a file, create a StreamWriter object. 
StreamWriter myWriter = new StreamWriter(System.Web.HttpContext.Current.Server.MapPath("~/")   @"\Serialize\" Filename "_"   Session["UserName"]   ".xml"); 
try 

    mySerializer.Serialize(myWriter, mydt); 
    myWriter.Close(); 

 
catch (Exception ex) 

    throw new Exception(ex.Message, ex); //拋出異常,在調用處去處理 


 
/// <summary> 
/// xml反序列化成datatable 
/// </summary> 
/// <param name="Filename">XML文件名</param> 
/// <returns>datatable</returns> 
public DataTable DeserializeXmlFileDataTable(string Filename) 
{  
 
DataTable mydt; 
// Constructs an instance of the XmlSerializer with the type 
// of object that is being deserialized. 
XmlSerializer mySerializer = new XmlSerializer(typeof(DataTable)); 
// To read the file, creates a FileStream. 
FileStream myFileStream = new FileStream(System.Web.HttpContext.Current.Server.MapPath("~/")   @"\Serialize\"   Filename   "_"   Session["UserName"]   ".xml", FileMode.Open); 
// Calls the Deserialize method and casts to the object type. 
try 

    mydt = (DataTable)mySerializer.Deserialize(myFileStream); 
    myFileStream.Close(); 
    return mydt; 

 
catch (Exception ex) 

    throw new Exception(ex.Message, ex); //拋出異常,在調用處去處理 


本文来自网学(http://myeducs.cn),转载请注明出处:http://myeducs.cn/lunwen-resource/Net-biancheng/C-shixian-XML-yu-DataTable-huzhuandeshili/






公司实际开发案例:
  //
        //导出选择日期的公示名单(弹出xml文件下载提示)
        //
        DataTable dt = BussinessUtilNS.SelectJcmd(_wsid,_nsnf,exps, _ywlx);
        if (dt == null || dt.Rows.Count == 0)
        {
            Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "ShowErr", "<script>alert('没有检索到满足条件的信息,请重新选择公示日期!')</script>");
            return;
        }
        else
        {
            //
            //导出XML文档
            //
            string filename = string.Empty;//文件名
            string filepath = string.Empty;//文件路径       


            filename = "廉租低保住房条件家庭" + GetFileName()+".xml";
            System.IO.MemoryStream ms = new System.IO.MemoryStream();


            dt.WriteXml(ms, System.Data.XmlWriteMode.IgnoreSchema);
            Response.Clear();
            filename = Server.UrlEncode(filename);
            Response.ContentEncoding = Encoding.GetEncoding("GB2312");
            Response.AddHeader("Content-Disposition", "attachment; filename=" + filename);
            Response.AddHeader("Content-Length", ms.Length.ToString());
            Response.ContentType = "application/octet-stream";


            byte[] b = ms.ToArray();


            Response.OutputStream.Write(b, 0, b.Length);
            HttpContext.Current.ApplicationInstance.CompleteRequest();


            ms.Close();//清理资源

            this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(),"","alert('导出成功!')",true);
       
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值