希望能给个例子(最好是C#的),谢谢!
图片显示希望是动态的

解决方案 »

  1.   

    OracleConnection   conn=new   OracleConnection(ConnectionString);   
      OracleDataAdapter   oda=new   OracleDataAdapter("select   *   from   cym1.cym     ",conn);   
      DataSet   ds=new   DataSet();   
      oda.Fill(ds);   
      if(ds.Tables[0].Rows.Count>0)   
      {   
      byte[]   imgdata=(byte[])ds.Tables[0].Rows[(int)Session["pos"]][0];   
      Response.BinaryWrite(imgdata);   
      }
      

  2.   

    Response.BinaryWrite(byte[] byte)
      

  3.   

    楼上的可以,或者Response.OutputStream.Write(byte[] imgData);
      

  4.   

    建一个Web页ShowImage.aspx添加下面的代码:
        protected void Page_Load(object sender, EventArgs e)
        {
            string id = Request["id"].ToString();
            string connstr = "server=.;integrated security=sspi;database=Test";
            
            SqlConnection connection = new SqlConnection(connstr);        SqlCommand cmd = new SqlCommand("select ImageData from MyPictures where Id="+id, connection);
            connection.Open();
            byte[] imageData = (byte[])cmd.ExecuteScalar();
            connection.Close();
            Response.OutputStream.Write(imageData, 0,imageData.Length);
        }然后就可以在别的窗体里动态显示图片了:        Image1.ImageUrl = "ShowImage.aspx?id=1";
           Image2.ImageUrl = "ShowImage.aspx?id=55";
      

  5.   


    <%@ WebHandler Language="VB" Class="Handler" %>Imports System
    Imports System.Web
    imports System.IO
    imports System.Data
    imports System.Data.SqlClient
    Imports System.ConfigurationPublic Class Handler : Implements IHttpHandler    Private ConStr As String = ConfigurationManager.ConnectionStrings("ConnectionStore").ConnectionString
        
        Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
            'get images type
            dim ImageType as String = context.Request.QueryString("type").ToString()
            dim ID as Integer = ctype(context.Request.QueryString("id"),Integer)
            'set output type
            context.Response.ContentType = ImageType
            context.Response.Cache.SetCacheability(HttpCacheability.Public)
            context.Response.BufferOutput = False
            dim Streams as Stream = nothing
            'get picture stream from tbBannerAdv
            Streams = GetPicture(ID)
            'set buffer
            dim BufferSize as Int32 = 1024*16
            dim Bytes as Byte() = new Byte(BufferSize) {}
            dim Count as Integer = Streams.Read(Bytes,0,BufferSize)
            while Count>0
                context.Response.OutputStream.Write(Bytes,0,Count)
                Count = Streams.Read(Bytes,0,BufferSize)
            end while
        End Sub
     
        Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
            Get
                Return True
            End Get
        End Property
        
        'check input is null or empty
        Private Function IsNotEmpty(ByVal text As String) As Boolean
            Dim Result As Boolean
            If String.IsNullOrEmpty(text) Then
                Result = False
            Else
                Result = True
            End If
            Return Result
        End Function
        
        private function GetPicture(id as Integer) as Stream
        dim QuerySql as String = "SELECT image FROM tbBannerAdv WHERE id=@ID"
            if IsNotEmpty(id) then
                 using Con as SqlConnection = new SqlConnection(ConStr)
                    using Cmd as SqlCommand = new SqlCommand(QuerySql,Con)
                    try           
                    Cmd.Parameters.AddWithValue("@ID",id)
                    Con.Open()
                    'get picture
                    dim Results as Object = cmd.ExecuteScalar() 
                    'return picture stream                
                    return new MemoryStream(ctype(Results,Byte()))
                    Catch ex As Exception
                        Con.Dispose()
                    end try               
                    end using
                 end using      
            End If
        End Function
    End Class
      <img src='Handler.ashx?id=<%# Eval("id") %>&type=<%# Eval("ImageMimetype")%>' alt="N/A"
                                                                width="160px" height="80px" border="0" />
      

  6.   

    此问题经常被人问,本文列出将文字和图片上传到数据库的方法。包括Access数据库和SQL Server数据库。Access数据库代码
    <%@ Page Language="C#" EnableViewState="true" %><%@ Import Namespace="System.Data.OleDb" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">  protected void Button1_Click( object sender, EventArgs e )
      {
        System.IO.Stream fileDataStream = FileUpload1.PostedFile.InputStream;    if (fileDataStream.Length < 1)
        {
          Msg.Text = "请选择文件。";
          return;
        }    //得到文件大小
        int fileLength = FileUpload1.PostedFile.ContentLength;    //创建数组
        byte[] fileData = new byte[fileLength];
        //把文件流填充到数组
        fileDataStream.Read(fileData, 0, fileLength);
        //得到文件类型
        string fileType = FileUpload1.PostedFile.ContentType;    //构建数据库连接,SQL语句,创建参数
        string strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Image2Access.mdb");
        OleDbConnection myConnection = new OleDbConnection(strCnn);
        OleDbCommand command = new OleDbCommand("INSERT INTO Person (PersonName,PersonEmail,PersonSex,PersonImageType,PersonImage)" +
        "VALUES (@PersonName,@PersonEmail,@PersonSex,@PersonImageType,@PersonImage)", myConnection);    command.Parameters.AddWithValue("@PersonName",TextBox1.Text);
        command.Parameters.AddWithValue("@PersonEmail", "[email protected]");
        command.Parameters.AddWithValue("@paramPersonSex", "男");
        command.Parameters.AddWithValue("@PersonImageType", fileType);
        command.Parameters.AddWithValue("@PersonImage", fileData);
        //打开连接,执行查询
        myConnection.Open();
        command.ExecuteNonQuery();
        myConnection.Close();
        Response.Redirect(Request.RawUrl);
      }
      protected void Page_Load( object sender, EventArgs e )
      {    if (!Page.IsPostBack)
        {
          BindGrid();
        }
      }  private void BindGrid( )
      {
        string strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
        + Server.MapPath("Image2Access.mdb");
        OleDbConnection myConnection = new OleDbConnection(strCnn);
        OleDbCommand myCommand = new OleDbCommand("SELECT * FROM Person", myConnection);    try
        {
          myConnection.Open();
          GridView1.DataSource = myCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
          GridView1.DataBind();
        }
        catch (OleDbException SQLexc)
        {
          Response.Write("提取数据时出现错误:" + SQLexc.ToString());
        }
      }
      protected string FormatURL( object strArgument )
      {
        return "ReadImage.aspx?id=" + strArgument.ToString();
      }  </script><html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
      <title>上传文件到数据库</title>
    </head>
    <body>
      <form id="MengXianhui" runat="server">
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
          <Columns>
            <asp:TemplateField>
              <ItemTemplate>
                <%#Eval("PersonName") %>
              </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
              <ItemTemplate>
                <%#Eval("PersonEmail") %>
              </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
              <ItemTemplate>
                <%#Eval("PersonSex") %>
              </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
              <ItemTemplate>
                <img src="<%#FormatURL(Eval("PersonID")) %>" /></ItemTemplate>
            </asp:TemplateField>
          </Columns>
        </asp:GridView>
        <br />
        <br />
        姓名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <br />
        照片:<asp:FileUpload ID="FileUpload1" runat="server" />
        <asp:Button ID="btnUpload" runat="server" Text="上传" OnClick="Button1_Click"></asp:Button>
        <p>
          <asp:Label ID="Msg" runat="server" ForeColor="Red"></asp:Label></p>
      </form>
    </body>
    </html>
      

  7.   

    SQL Server数据库代码
    <%@ Page Language="C#" EnableViewState="true" %><%@ Import Namespace="System.Data.SqlClient" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">
      string strCnn = "Persist Security Info=False;User ID=sa;Password=;Initial Catalog=Book;Server=(local);";
      protected void Button1_Click( object sender, EventArgs e )
      {
        System.IO.Stream fileDataStream = FileUpload1.PostedFile.InputStream;    if (fileDataStream.Length < 1)
        {
          Msg.Text = "请选择文件。";
          return;
        }    //得到文件大小
        int fileLength = FileUpload1.PostedFile.ContentLength;    //创建数组
        byte[] fileData = new byte[fileLength];
        //把文件流填充到数组
        fileDataStream.Read(fileData, 0, fileLength);
        //得到文件类型
        string fileType = FileUpload1.PostedFile.ContentType;    //构建数据库连接,SQL语句,创建参数    SqlConnection myConnection = new SqlConnection(strCnn);
        SqlCommand command = new SqlCommand("INSERT INTO UserPhoto (UserName,ContentType,Photo)" +
        "VALUES (@UserName,@ContentType,@Photo)", myConnection);    command.Parameters.AddWithValue("@UserName", TextBox1.Text);
        command.Parameters.AddWithValue("@ContentType", fileType);
        command.Parameters.AddWithValue("@Photo", fileData);    //打开连接,执行查询
        myConnection.Open();
        command.ExecuteNonQuery();
        myConnection.Close();
        Response.Redirect(Request.RawUrl);
      }
      protected void Page_Load( object sender, EventArgs e )
      {    if (!Page.IsPostBack)
        {
          BindGrid();
        }
      }  private void BindGrid( )
      {
        SqlConnection myConnection = new SqlConnection(strCnn);
        SqlCommand myCommand = new SqlCommand("SELECT * FROM UserPhoto Order By id DESC", myConnection);    try
        {
          myConnection.Open();
          GridView1.DataSource = myCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
          GridView1.DataBind();
        }
        catch (Exception SQLexc)
        {
          Response.Write("提取数据时出现错误:" + SQLexc.ToString());
        }
      }
      protected string FormatURL( object strArgument )
      {
        return "ReadImage.aspx?id=" + strArgument.ToString();
      }  </script><html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
      <title>上传文件到数据库</title>
    </head>
    <body>
      <form id="MengXianhui" runat="server">
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
          <Columns>
            <asp:TemplateField>
              <ItemTemplate>
                <%#Eval("UserName") %>
              </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
              <ItemTemplate>
                <img src="<%#FormatURL(Eval("id")) %>" /></ItemTemplate>
            </asp:TemplateField>
          </Columns>
        </asp:GridView>
        <br />
        <br />
        姓名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <br />
        照片:<asp:FileUpload ID="FileUpload1" runat="server" />
        <asp:Button ID="btnUpload" runat="server" Text="上传" OnClick="Button1_Click"></asp:Button>
        <p>
          <asp:Label ID="Msg" runat="server" ForeColor="Red"></asp:Label></p>
      </form>
    </body>
    </html>显示图片
    <%@ Page Language="C#" %><%@ Import Namespace="System.Data.OleDb" %>
    <%@ Import Namespace="System.Data.SqlClient" %>
    <script runat="server">  protected void Page_Load( object sender, EventArgs e )
      {
        ////构建数据库连接,SQL语句,创建参数
        //ACCESS数据库使用本注释部分
        //string strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Image2Access.mdb");
        //OleDbConnection myConnection = new OleDbConnection(strCnn);
        //OleDbCommand command = new OleDbCommand("select * from Person Where PersonID =" + Request.QueryString["id"], myConnection);
        //myConnection.Open();
        //OleDbDataReader dr = command.ExecuteReader();
        //if (dr.Read())
        //{
        //  Response.Clear();
        //  Response.AddHeader("Content-Type", dr["PersonImageType"].ToString());
        //  Response.BinaryWrite((byte[])dr["PersonImage"]);
        //}
        //dr.Close();
        //myConnection.Dispose();    //构建数据库连接,SQL语句,创建参数
        string strCnn = "Persist Security Info=False;User ID=sa;Password=;Initial Catalog=Book;Server=(local);";
        SqlConnection myConnection = new SqlConnection(strCnn);
        SqlCommand command = new SqlCommand("select * from UserPhoto Where id =" + Request.QueryString["id"], myConnection);
        myConnection.Open();
        SqlDataReader dr = command.ExecuteReader();
        if (dr.Read())
        {
          Response.Clear();
          Response.AddHeader("Content-Type", dr["ContentType"].ToString());
          Response.BinaryWrite((byte[])dr["Photo"]);
        }
        dr.Close();
        myConnection.Dispose();
      }
    </script>创建SQL数据表语句
    CREATE TABLE [UserPhoto] (
    [id] [int] IDENTITY (1, 1) NOT NULL ,
    [UserName] [nvarchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [ContentType] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [Photo] [image] NOT NULL ,
    CONSTRAINT [PK_UserPhoto] PRIMARY KEY  CLUSTERED 
    (
    [id]
    )  ON [PRIMARY] 
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    GO 
    关键字:ASP.NET2.0 上传文件 数据库