Hi i have a very strange bug in my code somewhere. it is stopping the first image being displayed.

i only noticed it just now and don't have the knowledge on how to fix it.

it seems that the code in default2.aspx misses the first image tag and request on line 41 but applies it to line 49.

what should happen is that it displays two identical images as specified by the querystring


any help will be most welcomed.

1    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="viewdetails.aspx.vb" Inherits="viewdetails" %>
2    
3    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4    
5    <html xmlns="http://www.w3.org/1999/xhtml">
6    <head runat="server">
7        <title>Untitled Page</title>
8    </head>
9    <body>
10       <form id="form1" runat="server">
11       <div>
12       
13           <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
14               ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
15               SelectCommand="SELECT * FROM [PropertyView] WHERE ([PropertyID] = @PropertyID)">
16               <SelectParameters>
17                   <asp:QueryStringParameter Name="PropertyID" QueryStringField="PropertyID" 
18                       Type="Int32" />
19               </SelectParameters>
20           </asp:SqlDataSource>
21           <br />
22           <br />
23       
24           <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
25               DataKeyNames="PropertyID" DataSourceID="SqlDataSource1">
26               <Columns>
27                   <asp:BoundField DataField="PropertyTitle" HeaderText="PropertyTitle" 
28                       SortExpression="PropertyTitle" />
29                   <asp:BoundField DataField="PropertyType" HeaderText="PropertyType" 
30                       SortExpression="PropertyType" />
31                   <asp:BoundField DataField="PropertyPrice" HeaderText="PropertyPrice" 
32                       SortExpression="PropertyPrice" />
33                   <asp:BoundField DataField="PropertyBedroom" HeaderText="PropertyBedroom" 
34                       SortExpression="PropertyBedroom" />
35                   <asp:BoundField DataField="PropertyDescription" 
36                       HeaderText="PropertyDescription" SortExpression="PropertyDescription" />
37                   <asp:BoundField DataField="PropertyLocation" HeaderText="PropertyLocation" 
38                       SortExpression="PropertyLocation" />
39                       <asp:TemplateField>
40                           <ItemTemplate>
41                               <asp:Image ID="Image1" runat="server" 
42                                   ImageUrl='<%# Eval("PropertyID", "Default2.aspx?PropertyID={0}") %>' />
43                           </ItemTemplate>
44                   </asp:TemplateField>
45               </Columns>
46           </asp:GridView>
47       
48           <br />
49           <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
50           <ItemTemplate>
51           <asp:Image ID="Image1" runat="server" 
52                                   ImageUrl='<%# Eval("PropertyID", "Default2.aspx?PropertyID={0}") %>' />
53           </ItemTemplate>
54           </asp:Repeater>
55       
56       </div>
57       </form>
58   </body>
59   </html>
60

here is the code from default2.aspx.vb the connects to the database and assigns the image based on the productid

1    Imports System.Data.SqlClient
2    Partial Class Default2
3        Inherits System.Web.UI.Page
4        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
5            Dim PropertyID As Integer = Convert.ToInt32(Request.QueryString("PropertyID"))
6    
7            'Connect to the database and bring back the image contents & MIME type for the specified picture
8            Using myConnection As New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)
9    
10               Const SQL As String = "SELECT [MIMEType], [ImageData] FROM [Property] WHERE [PropertyID] = @PropertyID"
11               Dim myCommand As New SqlCommand(SQL, myConnection)
12               myCommand.Parameters.AddWithValue("@PropertyID", PropertyID)
13   
14               myConnection.Open()
15               Dim myReader As SqlDataReader = myCommand.ExecuteReader
16   
17               If myReader.Read Then
18                   Response.ContentType = myReader("MIMEType").ToString()
19                   Response.BinaryWrite(myReader("ImageData"))
20               End If
21   
22               myReader.Close()
23               myConnection.Close()
24           End Using
25       End Sub
26   End Class
27
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.