vijay

welcome Netizen

Share Your Knowledge.It is a way to achieve immortality

Wednesday, June 8, 2011

How To Store ImageURL in Database and View the image through gridview using ASP.Net


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