• xml數據


    <Books>
    <Books>
    <BookId>102</BookId>
    <BookName>C++</BookName>
    <BookPrice>39</BookPrice>
    <Supplier>Phei</Supplier>
    </Books>
    <Books>
    <BookId>103</BookId>
    <BookName>VB</BookName>
    <BookPrice>52.2</BookPrice>
    <Supplier>Pe</Supplier>
    </Books>
    <Books>
    <BookId>105</BookId>
    <BookName>Build C++</BookName>
    <BookPrice>123</BookPrice>
    <Supplier>ww</Supplier>
    </Books>
    </Books>
    1﹑在C#中引用System.IO,在類中定義倆個Static DataSet ds﹐Static DataView dv。然后寫一個顯示XML数据的函数:
    private void DG_Bind()
    {
    FileStream fs=new FileStream(Server.MapPath(".\\")+"xml\\books.xml",FileMode.Open,FileAccess.Read);
    StreamReader reader=new StreamReader(fs);
    ds=new DataSet();
    ds.ReadXml(reader);
    fs.Close();
    dv=new DataView();
    dv=ds.Tables[0].DefaultView;
    DG.DataSource=dv;
    DG.DataBind();
    }
    在Page_Load中引用函数:
    if(!IsPostBack)
    {
    DG_Bind();
    }

    2﹑向XML中添加数据﹕
    private void Add_Click(object sender, System.EventArgs e)
    {
    FileStream fs=new FileStream(Server.MapPath(".\\")+"xml\\books.xml",FileMode.Open,FileAccess.Read);
    StreamReader reader=new StreamReader(fs);
    ds=new DataSet();
    ds.ReadXml(reader);
    fs.Close();
    DataRow dr=ds.Tables[0].NewRow();
    dr["BookName"]=Book.Text.Trim();
    dr["BookId"]=Bid.Text.Trim();
    dr["BookPrice"]=Price.Text.Trim();
    dr["Supplier"]=Supp.Text.Trim();
    ds.Tables[0].Rows.Add(dr);
    ds.AcceptChanges();

    fs=new FileStream(Server.MapPath(".\\")+"xml\\books.xml",FileMode.Create,FileAccess.Write|FileAccess.Read);
    StreamWriter writer=new StreamWriter(fs);
    ds.WriteXml(writer);
    writer.Close();
    fs.Close();
    DG_Bind();
    }

    3﹑查詢數據﹐查詢數據很簡單﹐就向DV查詢就OK了﹐主要是利用DV的RowFilter方法。代碼經如下:
    private void Search(object sender, System.EventArgs e)
    {
    dv.Sort="BookName";
    dv.RowFilter="BookName like '%"+BookName.Text.Trim()+"%'";
    DG1.DataSource=dv;
    DG1.DataBind();
    }

    4﹑數據的刪除并寫入XML文件中,在這里﹐我們就要用到DG中添加的CheckBox控件的TemplateColumn作用了﹐首先利用一個循環來判斷CheckBox是否被選種﹐然后刪除選中的列﹐并寫入XML文件中。具體 的代碼如下﹕
    private void Del_Click(object sender, System.EventArgs e)
    {
    for(int i=0;i<this.DG.Items.Count;i++)
    {
    CheckBox CK=(CheckBox)this.DG.Items[i].FindControl("ck");
    if(CK.Checked)
    {
    ds.Tables[0].DefaultView.Sort="BookId";
    int j=ds.Tables[0].DefaultView.Find(this.DG.Items[i].Cells[1].Text);
    ds.Tables[0].DefaultView.Delete(j);
    DG.DataSource=ds.Tables[0].DefaultView;
    ds.AcceptChanges();
    FileStream fs=new FileStream(Server.MapPath(".\\")+"xml\\books.xml",FileMode.Create,FileAccess.Write|FileAccess.Read);
    StreamWriter writer=new StreamWriter(fs);
    ds.WriteXml(writer);
    writer.Close();
    fs.Close();
    }
    }
    DG_Bind();
    }
  • 相关阅读:
    Flask-SQLAlchemy
    with 与 上下文管理器
    使用@property
    C++:如何把一个int转成4个字节?
    尝试理解Flask源码 之 搞懂WSGI协议
    qt setData()和data()
    我使用过的Linux命令之sftp
    linux下如何使用sftp命令
    Linux环境下安装JDK
    CentOS 6.5 配置IP地址的三种方法
  • 原文地址:https://www.cnblogs.com/meiproject/p/754597.html
Copyright © 2020-2023  润新知