hi
replace your gridview html with the following. I have added a template field
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="AccessDataSource1"
Width="236px" Font-Names="Calibri">
<Columns>
<asp:BoundField DataField="Id" HeaderText="Id" SortExpression="Id" />
<asp:ImageField DataImageUrlField="ImageUrl" HeaderText="Image Url">
</asp:ImageField>
<asp:BoundField DataField="NameofBook" HeaderText="Name of Book" SortExpression="NameofBook" />
<asp:TemplateField HeaderText="View Link">
<ItemTemplate>
<asp:LinkButton ID="lnkViewLink" runat="server" PostBackUrl='<%# Eval("ViewUrl")%>' Text="View Link"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:ButtonField ButtonType="Button" DataTextField="DownloadLink" DataTextFormatString="Download"
SortExpression="DownloadLink" Text="Button2" />
</Columns>
<EmptyDataTemplate>
ImageUrl
</EmptyDataTemplate>
</asp:GridView>
important thing is that your stored link should be a relative link otherwise it will break.