方法:C#在WinForm中如何将Image存入SQL2000和取出显示

//保存   
  sql="insert   into   p_ry_photo(id,photo)   values   ('"+id+"',@i)";   
  SqlCommand   cmd=new   SqlCommand(sql,CommonVar.SqlConDataBase);   
  MemoryStream   s   =   new   MemoryStream();   
  picPhoto.Image.Save(s,System.Drawing.Imaging.ImageFormat.Jpeg);   
  byte[]   b   =   s.ToArray();   
  s.Close();   
  cmd.Parameters.Add("@i",SqlDbType.Image,(int)b.Length);   
  cmd.Parameters["@i"].Value=b;   
  cmd.ExecuteNonQuery();

 

 

//读取图象   

private   void   Readphoto(string   id)   
  {   
    try   
      {   
          string   ls_sql="select   photo   from   p_ry_photo   where   id='"+id+"'";   
          this.picPhoto.Image=null;   
          this.picPhoto.Refresh();   
          SqlCommand   cmd=new   SqlCommand(ls_sql,CommonVar.SqlConDataBase);   
          SqlDataReader   reader=cmd.ExecuteReader();   
          while(reader.Read())   
              {   
                  byte[]   b   =   (byte[])reader[0];   
                  MemoryStream   s   =   new   MemoryStream(b);   
                  Bitmap   bmp   =   new   Bitmap(s);   
                  System.Drawing.Image   image   =   bmp;   
                  picPhoto.Image   =   image;   
                  s.Close();   
                  }   
            reader.Close();   
        }   
  catch(Exception   ex)   
  {   
        MessageBox.Show(ex.Message);   
  }   
  }

 

建议将上传图片以文件形式保存,然后在数据库中存入路径。数据库读写图片耗时太长,很不划算。

posted @ 2010-05-22 00:36  Glawind  阅读(753)  评论(0编辑  收藏  举报