aspx文件源代码:
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" DataKeyNames ="BridgeID" >
        <Columns>
            <asp:TemplateField HeaderText="图片">
                <ItemTemplate>
                    <asp:Image ID="Image1" runat="server" ImageUrl ='<%# "Handler.ashx?BridgeID="+Eval("BridgeID") %>' />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:tongruiConnectionString %>"
        SelectCommand="SELECT [BridgeImage] FROM [Bridge] WHERE ([BridgeID] = @BridgeID)">
        <SelectParameters>
            <asp:Parameter DefaultValue="1" Name="BridgeID" Type="Int32" />
        </SelectParameters>
    </asp:SqlDataSource>
Handler.ashx的源代码:public void ProcessRequest(HttpContext context)
    {
        int BridgeID = int.Parse(context.Request.QueryString["BridgeID"]);
        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
        string sql = "select BridgeImage from Bridge where BridgeID=" + BridgeID;
        SqlCommand command = new SqlCommand(sql, conn);
        command.Parameters.Add(new SqlParameter("@BridgeID", BridgeID));
        //command.Parameters.Add(new SqlParameter("@Size", (int)size));
        conn.Open();
        
        //SqlCommand cmd = new SqlCommand("select imagedata from myimage where id=@id", conn);
        //cmd.Parameters.Add("@id", SqlDbType.Int);
        //cmd.Parameters["@id"].Value = id;        //conn.Open();
        SqlDataReader dr = command.ExecuteReader();
        if (dr.Read())
        {
            context.Response.BinaryWrite((byte[])dr["BridgeImage"]);
        }
        dr.Close();
    }怎么传递BridgeID的值,我有在.aspx.cs文件中写BridgeID=1,但无效

解决方案 »

  1.   

    传递BridgeID值得问题解决,但是图片显示不出来。
    修改后的.aspx代码     <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" DataKeyNames ="BridgeID" >
            <Columns>
                <asp:TemplateField HeaderText="图片">
                    <ItemTemplate>
                        <asp:Image ID="Image1" runat="server" ImageUrl ='<%# "Handler.ashx?BridgeID="+Eval("BridgeID") %>' />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:tongruiConnectionString %>"
            SelectCommand="SELECT [BridgeID] FROM [Bridge] WHERE ([BridgeCode] = @BridgeCode)">
            <SelectParameters>
                <asp:Parameter DefaultValue="001" Name="BridgeCode" Type="String" />
            </SelectParameters>
        </asp:SqlDataSource>