GridView&DetailsView对XML文件增删改

呵呵,不是什么新东西:)最后代码下载。
XML文件:
<? xml version="1.0" standalone="yes" ?>
< XmlDataSet >
  
< UserInfo >
    
< Id > 1 </ Id >
    
< Name > 赵AX </ Name >
  
</ UserInfo >
  
< UserInfo >
    
< Id > 2 </ Id >
    
< Name > 钱BB </ Name >
  
</ UserInfo >
  
< UserInfo >
    
< Id > 3 </ Id >
    
< Name > 孙CC </ Name >
  
</ UserInfo >
  
< UserInfo >
    
< Id > 4 </ Id >
    
< Name > 李DY </ Name >
  
</ UserInfo >
  
< UserInfo >
    
< Id > 5 </ Id >
    
< Name > 周EF </ Name >
  
</ UserInfo >
  
< UserInfo >
    
< Id > 6 </ Id >
    
< Name > 吴FF </ Name >
  
</ UserInfo >
  
< UserInfo >
    
< Id > 7 </ Id >
    
< Name > 郑GG </ Name >
  
</ UserInfo >
</ XmlDataSet >
前台代码:
<% @ Page Language = " C# "  AutoEventWireup = " true "   CodeFile = " Default.aspx.cs "  Inherits = " _Default "   %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

< html  xmlns ="http://www.w3.org/1999/xhtml"   >
< head  runat ="server" >
    
< title > 无标题页 </ title >
</ head >
< body >
    
< form  id ="form1"  runat ="server" >
    
< div >
        
< asp:ObjectDataSource  ID ="ObjectDataSource1"  runat ="server"  DeleteMethod ="DeleteDataSet"
            InsertMethod
="InsertDataSet"  SelectMethod ="GetDataSet"  TypeName ="UserInfoTable"
            UpdateMethod
="UpdateDataSet" >
            
< DeleteParameters >
                
< asp:Parameter  Name ="Id"  Type ="Int32"   />
            
</ DeleteParameters >
            
< UpdateParameters >
                
< asp:Parameter  Name ="Id"  Type ="Int32"   />
                
< asp:Parameter  Name ="Name"  Type ="String"   />
            
</ UpdateParameters >
            
< InsertParameters >
                
< asp:Parameter  Name ="Name"  Type ="String"   />
            
</ InsertParameters >
        
</ asp:ObjectDataSource >
        
&nbsp; </ div >
        
< asp:GridView  ID ="GridView1"  runat ="server"  DataSourceID ="ObjectDataSource1" >
            
< Columns >
                
< asp:CommandField  ShowDeleteButton ="True"  ShowEditButton ="True"   />
            
</ Columns >
        
</ asp:GridView >
        
< asp:DetailsView  ID ="DetailsView1"  runat ="server"  DataSourceID ="ObjectDataSource1"
            Height
="81px"  Width ="125px"  AllowPaging ="True" >
            
< Fields >
                
< asp:CommandField  ShowInsertButton ="True"   />
            
</ Fields >
        
</ asp:DetailsView >
    
</ form >
</ body >
</ html >
后台(UserInfoTable.cs)代码:
using  System;
using  System.Data;
using  System.Configuration;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;

using  System.Globalization;

///   <summary>
///  操作XML文件
///   </summary>
public   class  UserInfoTable : IDisposable
{
    
///   <summary>
    
///  XML文件路径
    
///   </summary>
     private   static   string  strXmlFile  =   " ~/App_Data/UserInfo.xml " ;
    
///   <summary>
    
///  DataSet对象
    
///   </summary>
     private  DataSet dataset  =   null ;
    
///   <summary>
    
///  XML文件相对路径
    
///   </summary>
     private   string  strFilePath  =   null ;

    
///   <summary>
    
///  构造函数
    
///   </summary>
     public  UserInfoTable()
    {
        
//  实例化DataSet
        dataset  =   new  DataSet();
        
//  不依赖于区域性
        dataset.Locale  =  CultureInfo.InvariantCulture;
        
//  取得XML文件虚拟路径
        strFilePath  =  HttpContext.Current.Server.MapPath(strXmlFile);
        
//  读取XML文件
        dataset.ReadXml(strFilePath);
    }

    
///   <summary>
    
///  资源释放
    
///   </summary>
     public   void  Dispose()
    {
        
//  关闭DataSet
        dataset.Dispose();
        GC.SuppressFinalize(
this );
    }

    
///   <summary>
    
///  检索数据
    
///   </summary>
    
///   <returns> DataSet对象 </returns>
     public  DataSet GetDataSet()
    {
        
//  返回DataSet对象
         return  dataset;
    }
    
///   <summary>
    
///  更新数据
    
///   </summary>
    
///   <param name="nID"> Id </param>
    
///   <param name="strName"> Name </param>
    
///   <returns> 更新是否成功 </returns>
     public   void  UpdateDataSet( int  Id,  string  Name)
    {
        
try
        {
            
//  选择节点条件
             string  strFilter  =   " Id= "   +  Id.ToString(CultureInfo.InvariantCulture);
            
//  记录取得的行的集合
            DataRow[] rows  =  dataset.Tables[ 0 ].Select(strFilter);
            
//  如果取到记录
             if  (rows.Length  >   0 )
            {
                
//  更新数据
                rows[ 0 ][ " Name " =  Name;
                
//  保存数据
                Save();
            }
        }
        
catch  (Exception)
        {
        }
    }

    
///   <summary>
    
///  删除一条数据
    
///   </summary>
    
///   <param name="nID"> ID </param>
    
///   <returns> 是否删除成功 </returns>
     public   void  DeleteDataSet( int  Id)
    {

        
try
        {
            
//  选择节点条件
             string  strFilter  =   " Id= "   +  Id.ToString(CultureInfo.InvariantCulture);
            
//  记录取得的行的集合
            DataRow[] rows  =  dataset.Tables[ 0 ].Select(strFilter);
            
//  如果取到记录
             if  (rows.Length  >   0 )
            {
                
//  删除数据
                rows[ 0 ].Delete();
                
//  保存数据
                Save();
            }
        }
        
catch  (Exception)
        {
        }
    }

    
///   <summary>
    
///  插入数据
    
///   </summary>
    
///   <param name="strName"> 姓名 </param>
    
///   <returns> 是否插入成功 </returns>
     public   void  InsertDataSet( int  Id,  string  Name)
    {
        DataRow row 
=  dataset.Tables[ 0 ].NewRow();
        row[
" Id " =  Id;
        row[
" Name " =  Name;
        dataset.Tables[
0 ].Rows.Add(row);
        Save();
    }

    
///   <summary>
    
///  保存XML文档
    
///   </summary>
     private   void  Save()
    {
        
//  写入XML文档
        dataset.WriteXml(strFilePath, XmlWriteMode.IgnoreSchema);
    }
}
代码下载: /Files/luoboqingcai/GridViewXML.rar

转载于:https://www.cnblogs.com/luoboqingcai/archive/2006/07/01/440483.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值