Insert Update Delete with xml Database

*Add Dataset file from solution explorer

*Add Crystal Report file from solution explorer

xml.aspx

<head runat="server">
    <title>Untitled Page</title>
   
    <script type="text/javascript">

    function show() {
        document.getElementById("FileUpload1").click();
    }
 
  </script>



</head>
<body>
    <form id="form1" runat="server">
    <div style="font-family: 'Comic Sans MS'; color: #000000" align="center">
            <br /><br />
            <asp:Button ID="Button1" runat="server" Text="View Report"
                onclick="Button1_Click" />
             <br /><br />
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4"
ForeColor="#333333" GridLines="None" ShowFooter="True"
                OnRowCancelingEdit="GridView1_RowCancelingEdit"
                OnRowCommand="GridView1_RowCommand" OnRowDeleting="GridView1_RowDeleting"
                OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" 
                style="text-transform:capitalize" >
               
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:TemplateField HeaderText="Eno">
<EditItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("eno") %>'></asp:Label>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("eno") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Eval("ename") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Eval("ename") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Address">
<EditItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Text='<%# Eval("eadd") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%# Eval("eadd") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Salary">
<EditItemTemplate>
<asp:TextBox ID="TextBox6" runat="server" Text='<%# Eval("esal") %>'></asp:TextBox>
</EditItemTemplate>
<FooterTemplate>
<asp:TextBox ID="TextBox7" runat="server"></asp:TextBox>
</FooterTemplate>
<ItemTemplate>
<asp:Label ID="Label5" runat="server" Text='<%# Eval("esal") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Photo">
<EditItemTemplate>
    <a href="javascript:show()">Upload Photo</a>
</EditItemTemplate>
<FooterTemplate>
<a href="javascript:show()" style="color: #FFFF00">Upload Photo</a>
</FooterTemplate>
<ItemTemplate>
    <asp:Image ID="Image1" runat="server" Width="50" Height="50" ImageUrl='<%# Eval("eimg") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Edit">
<EditItemTemplate>
<asp:LinkButton ID="LinkButton3" runat="server" CommandName="update">Update</asp:LinkButton>
<asp:LinkButton ID="LinkButton4" runat="server" CommandName="cancel">Cancel</asp:LinkButton>
</EditItemTemplate>
<FooterTemplate>
<asp:LinkButton ID="LinkButton5" runat="server" CommandName="save" ForeColor="#FFFFCC">Save</asp:LinkButton>
</FooterTemplate>
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="edit">Edit</asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server" CommandName="delete">Delete</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Report">
<ItemTemplate>
    <asp:LinkButton ID="LinkButton6" runat="server" onclick="LinkButton6_Click">Report</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<RowStyle BackColor="#FFFBD6" ForeColor="#333333" HorizontalAlign="Center"
                VerticalAlign="Middle" />
<EmptyDataTemplate>
No Data Available
</EmptyDataTemplate>
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
<PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>

        <br />
       
        <br />
        <asp:FileUpload ID="FileUpload1"  runat="server" style="display:none" />
             
        <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="true" />
    </div>
   
    </form>
</body>



xml.aspx.CS

using CrystalDecisions.CrystalReports.Engine;

public partial class _xml : System.Web.UI.Page
{
    static byte[] bt;
    static string strFile_Name;

    public static byte[] ReadImageFile(string PostedFileName, string[] filetype)
    {
        bool isAllowedFileType = false;
        try
        {
            FileInfo file = new FileInfo(PostedFileName);
            strFile_Name = file.Name;
            foreach (string strExtensionType in filetype)
            {
                if (strExtensionType == file.Extension)
                {
                    isAllowedFileType = true;
                    break;
                }
            }
            if (isAllowedFileType)
            {
                FileStream fs = new FileStream(PostedFileName, FileMode.Open, FileAccess.Read);
                BinaryReader br = new BinaryReader(fs);
                byte[] image = br.ReadBytes((int)fs.Length);
                br.Close();
                fs.Close();
                return image;
            }
            return null;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
   
    private void createxml()
    {
        DataTable tb = new DataTable("emp");
        tb.Columns.Add("eno",typeof(int));
        tb.Columns.Add("ename", typeof(string));
        tb.Columns.Add("eadd", typeof(string));
        tb.Columns.Add("esal", typeof(string));
        tb.Columns.Add("eimg", typeof(string));
        DataRow r = tb.NewRow();
        r[0] = 1;
        r[1] = "vinod";
        r[2] = "bhavnagar";
        r[3] = 17000;
        r[4] = "~/emp_photo/v2.jpg";
        tb.Rows.Add(r);
        String st = Server.MapPath("emp.xml");
        tb.WriteXml(st);
    }

    private void getxml()
    {
        String st = Server.MapPath("emp.xml");
        DataSet ds = new DataSet();
        ds.ReadXml(st);
        GridView1.DataSource = ds;
        GridView1.DataBind();
    }


    protected void Page_Load(object sender, EventArgs e)
    {
        String st = Server.MapPath("emp.xml");
        if (Page.IsPostBack == false)
        {
            if (File.Exists(st) == false)
            {
                createxml();               
            }
            getxml();
        }
    }   
   
    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "save")
        {

            string filename = System.IO.Path.GetFileName(FileUpload1.FileName);
            FileUpload1.SaveAs(Server.MapPath("~/emp_photo/" + filename));
            String st = Server.MapPath("emp.xml");
            DataSet ds = new DataSet();
            ds.ReadXml(st);
            DataRow r = ds.Tables[0].NewRow();
            r[0] = Convert.ToInt32(((TextBox)(GridView1.FooterRow.FindControl("TextBox1"))).Text);
            r[1] = ((TextBox)(GridView1.FooterRow.FindControl("TextBox3"))).Text;
            r[2] = ((TextBox)(GridView1.FooterRow.FindControl("TextBox5"))).Text;
            r[3] = Convert.ToInt32(((TextBox)(GridView1.FooterRow.FindControl("TextBox7"))).Text);
            r[4] = "~/emp_photo/"+FileUpload1.FileName;
            ds.Tables[0].Rows.Add(r);
            ds.WriteXml(st);
            getxml();
        }
    }

    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        String st = Server.MapPath("emp.xml");
        DataSet ds = new DataSet();
        ds.ReadXml(st);
        ds.Tables[0].Rows.RemoveAt(e.RowIndex);
        ds.WriteXml(st);
        getxml();
    }
   
    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex = e.NewEditIndex;
        getxml();
    }

    protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        GridView1.EditIndex = -1;
        getxml();
    }

    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {      
        string filename = System.IO.Path.GetFileName(FileUpload1.FileName);
        FileUpload1.SaveAs(Server.MapPath("~/emp_photo/" + filename));
        String st = Server.MapPath("emp.xml");
        DataSet ds = new DataSet();
        ds.ReadXml(st);
        ds.Tables[0].Rows[e.RowIndex][1] = ((TextBox)(GridView1.Rows[e.RowIndex].FindControl("TextBox2"))).Text;
        ds.Tables[0].Rows[e.RowIndex][2] = ((TextBox)(GridView1.Rows[e.RowIndex].FindControl("TextBox4"))).Text;
        ds.Tables[0].Rows[e.RowIndex][3] = Convert.ToInt32(((TextBox)(GridView1.Rows[e.RowIndex].FindControl("TextBox6"))).Text);
        ds.Tables[0].Rows[e.RowIndex][4] = "~/emp_photo/" + FileUpload1.FileName;
        GridView1.EditIndex = -1;
        ds.WriteXml(st);
        getxml();
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        GridView1.Visible = false;
        ReportDocument rd = new ReportDocument();
        rd.Load(Server.MapPath("CrystalReport.rpt"));      
        DataSet1 d1 = new DataSet1();
        DataSet d2 = new DataSet();
        d2.ReadXml(Server.MapPath("emp.xml"));
        DataTable dt = d2.Tables[0];
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            DataRow dr = d1.vinod.NewRow();
            dr["name"] = dt.Rows[i]["ename"].ToString();

            string s = Server.MapPath(dt.Rows[i]["eimg"].ToString());
            bt = ReadImageFile(s, new string[] { ".GIF", ".gif", ".jpg", ".bmp", ".jpeg" });

            string msg = "<script type='text/javascript'>";
            msg += " alert('Conversion is successful!') ";
            msg += "</script>";

            ClientScript.RegisterClientScriptBlock(typeof(Page), "Test", msg);
            dr["photo"] = bt;

            d1.vinod.Rows.Add(dr);
        }
        rd.SetDataSource(d1);
        CrystalReportViewer1.ReportSource = rd;
        CrystalReportViewer1.RefreshReport();
    }

    protected void LinkButton6_Click(object sender, EventArgs e)
    {
        GridView1.Visible = false;
        LinkButton lb = (LinkButton)sender;
        GridViewRow row = (GridViewRow)lb.NamingContainer;
               
        Label enm = (Label)row.FindControl("Label3");      
        Image eimg = (Image)row.FindControl("Image1");       

        DataTable dt = new DataTable("vinod");       
        dt.Columns.Add("name", Type.GetType("System.String"));      
        dt.Columns.Add("photo", Type.GetType("System.Byte[]"));
                     
        string s = Server.MapPath(eimg.ImageUrl);
        bt = ReadImageFile(s, new string[] { ".GIF", ".gif", ".jpg", ".bmp", ".jpeg" });

        DataRow dr = dt.NewRow();       
        dr["name"] = enm.Text;
        dr["photo"] = bt;
        dt.Rows.Add(dr);

        ReportDocument rd = new ReportDocument();
        rd.Load(Server.MapPath("CrystalReport.rpt"));
        rd.SetDataSource(dt);
        CrystalReportViewer1.ReportSource = rd;
        CrystalReportViewer1.RefreshReport();
    }   
}