*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();
}
}