Hi..
In my previous atricle i explain about store a image in database without using Handler. By convert the image to bytes then we can store Bytes to database.By Following this methods ,It take more time to display a image in Grid,Below i mention url for your refrence...
http://vbdotnetaddict.blogspot.com/2011/06/how-to-retrieve-uploaded-images-from.html
Now in this article ,we are going to insert only image url to the database,we are storing the image in seperate folder.
By this method it take very less time to display an image.
Just Follow these Steps You have to do..
click Solutin Explorer add a new folder with name Image.
Create A DataBase should be like this.......
Design client side page like Below,Further follow the code for design
Client Side Coding:
<body>
<form id="form1" runat="server">
<div>
<table cellpadding ="0" cellspacing ="0" width="500" align="center" >
<tr>
<td height="100"></td>
</tr>
<tr>
<td>
Name:
</td>
<td>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
Image:
</td>
<td>
<asp:FileUpload ID="FileUpload1" runat="server" />
</td>
</tr>
<tr>
<td height="30">
</td>
</tr>
<tr>
<td align="justify" >
<asp:Button ID="Button1" runat="server" Text="ADD" />
</td>
<td>
<asp:Label ID="Label1" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td colspan ="2">
<asp:Button ID="Button2" runat="server" Text="Show all" />
</td>
</tr>
<tr>
<td colspan ="2">
<asp:GridView ID="imggrid" runat="server" AutoGenerateColumns ="false" Width="500px" DataKeyNames ="Sno" >
<Columns >
<asp:TemplateField HeaderText ="SNO" >
<ItemTemplate >
<%#Eval("Sno")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText ="Name" >
<ItemTemplate>
<%#Eval("Name")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Image">
<ItemTemplate >
<asp:Image ID="Image1" runat="server" ImageUrl ='<%#eval("ImageURL") %>' height="100px" Width="100px" />
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField HeaderText ="Modify" ShowEditButton ="true" ShowDeleteButton ="false" EditText ="Modify" />
<asp:TemplateField Headertext="Delete">
<ItemTemplate >
<asp:LinkButton ID="lnkdelete" runat="server" CommandName ="Delete">Delete</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</td>
</tr>
</table>
</div>
</form>
</body>
Server Side Coding:
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim imgext As String
Dim imgpath As String
Dim fname As String
con.ConnectionString = ConfigurationManager.ConnectionStrings("con").ConnectionString
If FileUpload1.HasFile Then
imgext = FileUpload1.FileName.Substring(FileUpload1.FileName.LastIndexOf(".") + 1).ToLower
'Get the max Sno from the table
maxid()
fname = TextBox1.Text
filename = id + (FileUpload1.FileName)
If (imgext = "jpg" Or imgext = "gif" Or imgext = "bmp") Then
imgpath = "~/image/" + filename
FileUpload1.SaveAs(Server.MapPath("~/image/") + filename)
Else
Label1.Text = "update only jpg,gif and bmp file"
End If
'Insert image Path into Database
fselect = "insert into imgurl values('" & id & "','" & fname & "','" & imgpath & "')"
sqlcmd = New SqlCommand(fselect, con)
con.Open()
sqlcmd.ExecuteNonQuery()
con.Close()
Label1.Text = "image Upload Succesfully"
loadgrid()
End If
End Sub
Sub maxid()
con.ConnectionString = ConfigurationManager.ConnectionStrings("con").ConnectionString
fselect = "select isnull(max(Sno)+1,1) as id from imgurl"
sqlcmd = New SqlCommand(fselect, con)
con.Open()
sqladp = New SqlDataAdapter(sqlcmd)
ds = New DataSet
sqladp.Fill(ds)
dt = ds.Tables(0)
If dt.Rows.Count > 0 Then
id = dt.Rows(0).Item("id")
End If
con.Close()
End Sub
Sub loadgrid()
con.ConnectionString = ConfigurationManager.ConnectionStrings("con").ConnectionString
fselect = "select * from imgurl"
sqlcmd = New SqlCommand(fselect, con)
con.Open()
sqldr = sqlcmd.ExecuteReader()
If sqldr.HasRows Then
imggrid.DataSource = sqldr
imggrid.DataBind()
imggrid.Columns(0).Visible = False
Else
imggrid.DataSource = sqldr
imggrid.DataBind()
imggrid.Columns(0).Visible = False
End If
con.Close()
End Sub
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
loadgrid()
End Sub
Protected Sub imggrid_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles imggrid.RowDeleting
Dim sno As Integer
Dim url As String
Dim fpath As String
con.ConnectionString = ConfigurationManager.ConnectionStrings("con").ConnectionString
sno = imggrid.DataKeys(e.RowIndex).Value.ToString
fselect = "select imageURL from imgurl where sno='" & sno & "'"
sqlcmd = New SqlCommand(fselect, con)
con.Open()
sqladp = New SqlDataAdapter(sqlcmd)
con.Close()
ds = New DataSet
sqladp.Fill(ds)
dt = ds.Tables(0)
If dt.Rows.Count > 0 Then
url = dt.Rows(0).Item("imageURL")
End If
fselect = "delete from imgurl where sno='" & sno & "'"
sqlcmd = New SqlCommand(fselect, con)
con.Open()
sqlcmd.ExecuteNonQuery()
con.Close()
'Delete the imgae File from that folder
fpath = Server.MapPath(url)
System.IO.File.Delete(fpath)
loadgrid()
End Sub
i hope this one helpful to u...
plz post you comments
0 comments:
Post a Comment