Description:-
In this Example we explain that How to store Image in database using “Image data type or how we can store image in the database. the main need to store image in database occur, while there is a issue of security. I mean to says that we can store the image of the signature of the people or human, because of the banking security or any other Department. To store the image in the database we have to use byte[] array. First when upload image by user using file upload control then I will convert the image into byte array[] and then it will store the image in the database..This type of example is very useful when we want to directally add the Image in Byte[] Format not the path of image in database.
in which we can easily upload any type of Image like .jpg,.png,.jpeg etc... and easily Retrieve from the Database and Display it.
Here is a code to Convert image into byte[] before we uploading it to the Database are as follow
byte[]
imageByte = new byte[flUpload.PostedFile.InputStream.Length
+ 1];
flUpload.PostedFile.InputStream.Read(imageByte, 0, imageByte.Length);
When we Retrieve Image From database we have First Type cat like
//we need to typecast to
byte[] before feeding it to BinaryWrite method.
if
(_sqlDataReader.Read())
{
Response.BinaryWrite((byte[])_sqlDataReader["photo"]);
the main Advantages of this example is the image is stored in database so you have not to maintain it's path. and the Disadvantage is that you have to Required High Database Size Because wall Image is stored in the database.
How to Handle Concurrency in Linq to Sql Concurrency Handle in Linq to SQL
Generate Random Password Autogenerate Unique Password
upload.aspx:-
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="upload.aspx.cs" Inherits="upload" %>
<!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 id="Head1" runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<p><b><asp:Literal ID="lit_storeImage" runat="server">Store
Image to DB</asp:Literal></b></p>
<asp:Label ID="lbl_SelectFile" runat="server" Text="Select an image file to
upload: "></asp:Label>
<asp:FileUpload ID="FileUpload_images" runat="server" />
<br />
<br />
<asp:Button ID="btn_storeImageInDB" runat="server"
onclick="btn_storeImageInDB_Click" Text="Store Image in DB" />
</div>
<hr />
<div>
<p><b><asp:Literal ID="lit_retrieveImage" runat="server">Retrieve
Image from DB</asp:Literal></b></p>
<asp:Image ID="imgFromDB" runat="server" AlternateText="No
Image"
GenerateEmptyAlternateText="True" Height="80px" Width="80px" />
<br />
<br />
<asp:Button ID="btn_retrieveImageFromDB" runat="server"
onclick="btn_retrieveImageFromDB_Click" Text="Retrieve Image from DB" />
</div>
</form>
</body>
</html>
upload.aspx.cs:-
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
public partial class upload : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
private void StoreImageinDB(FileUpload flUpload)
{
SqlConnection _sqlConnection = new SqlConnection();
SqlCommand _sqlCommand = new SqlCommand();
_sqlConnection.ConnectionString = @"Data Source=SQLDB;Initial Catalog=Demo;User
ID=Demoh;Password=Demo1@";
_sqlConnection.Open();
_sqlCommand.Connection =
_sqlConnection;
string SQLString = "Insert
into v_emp (empname,salary,desig,photo) values (@imgDescription,@salary, @type,
@Image)";
_sqlCommand.CommandText = SQLString;
_sqlCommand.Parameters.AddWithValue("@imgDescription", "Humpback Whale");
_sqlCommand.Parameters.AddWithValue("@salary", "5000");
_sqlCommand.Parameters.AddWithValue("@type", "jpeg");
//create
byte[] of length equal to the inputstream of the selected image.
byte[] imageByte = new byte[flUpload.PostedFile.InputStream.Length + 1];
flUpload.PostedFile.InputStream.Read(imageByte, 0, imageByte.Length);
_sqlCommand.Parameters.AddWithValue("Image",
imageByte);
_sqlCommand.ExecuteNonQuery();
_sqlConnection.Close();
}
protected void btn_storeImageInDB_Click(object sender, EventArgs e)
{
FileUpload _fileUpload = (FileUpload)this.FindControl("FileUpload_images");
if (_fileUpload.HasFile)
{
StoreImageinDB(_fileUpload);
}
else
{
Response.Write("Please select an image file");
}
}
protected void btn_retrieveImageFromDB_Click(object sender, EventArgs e)
{
RetrieveImageFromDB();
}
private void RetrieveImageFromDB()
{
imgFromDB.ImageUrl = "ImageURL.aspx";
}
}
ImageURL.aspx.cs:-
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
public partial class ImageURL : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection _sqlConnection = new SqlConnection();
SqlCommand _sqlCommand = new SqlCommand();
_sqlConnection.ConnectionString = @"Data Source=SQLDB;Initial Catalog=Demo;User
ID=Demoh;Password=Demo1@";
_sqlConnection.Open();
_sqlCommand.Connection =
_sqlConnection;
string SQLString = "select * from v_emp";
_sqlCommand.CommandText = SQLString;
SqlDataReader _sqlDataReader =
_sqlCommand.ExecuteReader();
//we
need to typecast to byte[] before feeding it to BinaryWrite method.
if (_sqlDataReader.Read())
{
Response.BinaryWrite((byte[])_sqlDataReader["photo"]);
}
_sqlDataReader.Close();
_sqlConnection.Close();
}
}
0 comments:
Post a Comment