I am making a web application using ASP.NET Forms in C# language.
and i need to take an image as an input and want to display it...
Here 'staffStatus' is ID of a GridView.. ( i don't want to bind data directly from there as only few columns should be displayed. )
SqlCommand cmd = new SqlCommand("SELECT * FROM [StaffInfo] WHERE Role='Staff' ", con);
SqlDataReader dr = cmd.ExecuteReader();
if ( dr.HasRows==true )
{
staffStatus.DataSource = dr;
staffStatus.DataBind();
}
This is content of staffStatus.aspx page ( to display the data )
<asp:GridView ID="staffStatus" runat="server" AutoGenerateColumns="False" ShowHeader="false" CssClass="table">
<Columns>
<asp:TemplateField>
<ItemTemplate>
Id: <asp:Label runat="server" id="staffId" Text='<%# Eval("Id") %>' />
<br />
Name : <asp:Label ID="staffName" runat="server" Text='<%# Eval("staffName") %>' /> <asp:Label runat="server" id="staffSurname" Text='<%# Eval("staffSurname") %>' />
<br />
Email : <asp:Label ID="staffEmail" runat="server" Text='<%# Eval("staffEmail") %>' />
<br />
Gender: <asp:Label runat="server" id="staffGender" Text='<%# Eval("staffGender") %>' />
<br />
Phone No. : <asp:Label ID="staffPhoneNo" runat="server" Text='<%# Eval("staffPhoneNo") %>' />
<br />
Joining Date: <asp:Label runat="server" id="staffJoinDate" Text='<%# Eval("staffJoinDate") %>' />
<br />
Role : <asp:Label ID="Role" runat="server" Text='<%# Eval("Role") %>' />
<br />
Image : <image src='<%# Eval("staffImage") %>' />
<br />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
And here is how, i save form data into Database
string staffImageName = ddlRole.SelectedItem.Text.ToUpper() + "_" + staffImage.PostedFile.FileName;
string staffImagePath = "Images/Staff/" + staffImageName;
staffImage.PostedFile.SaveAs(Server.MapPath("~/Images/Staff/") + staffImageName);
SqlCommand cmd = new SqlCommand("INSERT INTO [staffInfo] VALUES ('" + txtName.Text + "','" + txtSurname.Text + "','" + txtEmail.Text + "','" + ddlGender.SelectedItem.Text + "','" + txtPhone.Text + "','" + DateTime.Today.ToShortDateString() + "','" + cryptPassword + "','" + ddlRole.SelectedItem.Text + "','" + staffImagePath + "')", con);
int chck = cmd.ExecuteNonQuery();
So basically it'll save photos as STAFF_pic1.jpg or ADMIN_pic2.jpg in images folder available in project.
And for database it is storing data like Images/Staff/STAFF_pic1.jpg
BUT THAN HOW COME IT IS NOT DISPLAYING PICTURE ON APPLICATION!? Can anyone tell how and why this is happening!??