zoukankan      html  css  js  c++  java
  • C#读取数据库字节流生成图片

    前台用DataList绑定

       <asp:DataList ID="DataList1" runat="server">
                    <ItemTemplate>
                        <asp:Label ID="lbNwes" runat="server" Text='<%#Eval("Id")%>'></asp:Label>
                        &nbsp;
                <a href="<%# "ImageHandler.ashx?ImID="+ Eval("mainid") %>" target="_blank" title="点击放大看">
                    <asp:Image ID="Image1" Width="100px" Height="100px" runat="server" ImageUrl='<%# "ImageHandler.ashx?ImID="+ Eval("mainid") %>' />
    
                </a>
                        <asp:Image ID="Image2" runat="server" Width="100px" Height="100px" />
                    </ItemTemplate>
                </asp:DataList>

    后台用ImageHandler.ashx处理程序处理数据,代码如下:

     public void ProcessRequest(HttpContext context)
            {
                context.Response.ContentType = "image/gif";
                string imageid = context.Request.QueryString["ImID"];
                byte[] MyData = new byte[0];
                using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["strconn"].ConnectionString))
                {
                    conn.Open();
                    SqlCommand cmd = new SqlCommand();
                    cmd.Connection = conn;
                    cmd.CommandText = "select Data from Blobs where mainid=" + imageid;
                    SqlDataReader sdr = cmd.ExecuteReader();
                    sdr.Read();
                    MyData = (byte[])sdr["Data"];
                    context.Response.BinaryWrite(MyData);
                    
                }
            }

    这样能实现图片绑定到DataList上,但有一个问题,当有100个图片时,必须发出100个请求。载图如下,希望有好的方法分享一下。

  • 相关阅读:
    DockerCompose安装与快速体验
    Nginx:Docker部署与负载均衡开发实践
    JAVA基础:反射基础
    JVM:类加载机制
    JAVA基础:注解应用示例
    JAVA基础:注解机制
    JAVA并发(五):关键词final
    JAVA并发(四):关键词volatile
    Linux虚拟机配置作为旁挂路由器
    Linux起不来,如何修复
  • 原文地址:https://www.cnblogs.com/zxiong/p/4105932.html
Copyright © 2011-2022 走看看