如何向数据库中存入图片并显示出来,最好用DataList或DataGrid显示,小弟受困多时,谢谢各路大哥的帮助,不胜感激!

解决方案 »

  1.   

    SQL Server提供了一个特别的数据类型:image,它是一个包含binary数据的类型。下边这个例子就向你展示了如何将文本或照片放入到数据库中的办法。在这篇文章中我们要看到如何在SQL Server中存储和读取图片。    1、建立一个表:    在SQL SERVER中建立这样结构的一个表: 列名  类型  目的  
    ID  Integer  主键ID  
    IMGTITLE  Varchar(50)  图片的标题  
    IMGTYPE  Varchar(50)  图片类型. ASP.NET要以辨认的类型  
    IMGDATA  Image  用于存储二进制数据     2、存储图片到SQL SERVER数据库中    为了能存储到表中,你首先要上传它们到你的WEB 服务器上,你可以开发一个web form,它用来将客户端中TextBox web control中的图片入到你的WEB服务器上来。将你的 encType 属性设置为:myltipart/formdata. Stream imgdatastream = File1.PostedFile.InputStream; 
    int imgdatalen = File1.PostedFile.ContentLength; 
    string imgtype = File1.PostedFile.ContentType; 
    string imgtitle = TextBox1.Text; 
    byte[] imgdata = new byte[imgdatalen]; 
    int n = imgdatastream.Read(imgdata,0,imgdatalen); 
    string connstr=((NameValueCollection)Context.GetConfig("appSettings"))["connstr"]; SqlConnection connection = new SqlConnection(connstr); SqlCommand command = new SqlCommand 
              ("INSERT INTO ImageStore(imgtitle,imgtype,imgdata) 
              VALUES ( @imgtitle, @imgtype,@imgdata )", connection ); SqlParameter paramTitle = new SqlParameter 
              ("@imgtitle", SqlDbType.VarChar,50 ); paramTitle.Value = imgtitle; 
    command.Parameters.Add( paramTitle); SqlParameter paramData = new SqlParameter( "@imgdata", SqlDbType.Image ); 
    paramData.Value = imgdata; 
    command.Parameters.Add( paramData ); SqlParameter paramType = new SqlParameter( "@imgtype", SqlDbType.VarChar,50 ); 
    paramType.Value = imgtype; 
    command.Parameters.Add( paramType ); connection.Open(); 
    int numRowsAffected = command.ExecuteNonQuery(); 
    connection.Close();     3、从数据库中恢复读取    现在让我们来从SQL Server中读取我们放入的数据吧!我们将要输出图片到你的浏览器上,你也可以将它存放到你要的位置。 private void Page_Load(object sender, System.EventArgs e) 

      string imgid =Request.QueryString["imgid"]; 
      string connstr=((NameValueCollection) 
      Context.GetConfig("appSettings"))["connstr"]; 
      string sql="SELECT imgdata, imgtype FROM ImageStore WHERE id = " + imgid; 
      SqlConnection connection = new SqlConnection(connstr); 
      SqlCommand command = new SqlCommand(sql, connection); 
      connection.Open(); 
      SqlDataReader dr = command.ExecuteReader(); 
      if(dr.Read()) 
      { 
       Response.ContentType = dr["imgtype"].ToString(); 
       Response.BinaryWrite( (byte[]) dr["imgdata"] ); 
      } 
      connection.Close(); 
    }     要注意的是Response.BinaryWrite 而不是Response.Write. 
      

  2.   

    這里面有很多例子﹐希望隊你有幫助!
    http://msdn.microsoft.com/vcsharp/downloads/samples/
    你提問的這個問題在這個里面
    http://msdn.microsoft.com/vcsharp/downloads/samples/23samples/
    101 sample應該也有
      

  3.   

    Read and Write Images to a SQL Server Database with C#