根据图片ID(或者能唯一定位图片数据的数据)来打开数据库,获取二进制的图片数据,然后通过Response.ContentType="Iamge/gif"设置输出类型,使用Response.BinaryWrite()输出二进制数据。<image src="ImageShow.Aspx">

解决方案 »

  1.   

    //取出图片
    private void Button2_Click(object sender, System.EventArgs e)
    {
    SqlConnection con = new SqlConnection("Server=ss;uid=sa;pwd=;database=northwind");
    SqlDataAdapter da = new SqlDataAdapter("Select * From MyImages",con);
    SqlCommandBuilder MyCB = new SqlCommandBuilder(da);
    DataSet ds = new DataSet("MyImages");
    byte[] MyData= new byte[0];
    da.Fill(ds,"MyImages");
    DataRow myRow=ds.Tables["MyImages"].Rows[0];
    MyData=(byte[])myRow["imgField"];
    int ArraySize = new int();
    ArraySize = MyData.GetUpperBound(0); 
    FileStream fs = new FileStream(@"d:\b.jpg", 
    FileMode.OpenOrCreate, FileAccess.Write);
    fs.Write(MyData, 0,ArraySize);
    fs.Close();
    }
      

  2.   

    /// <summary>
    /// 向数据库写入图像文件
    /// </summary>
    private void UpLoadImageFile(FileInfo obj)
    {
    try
    {
    //创建一字节数组,用来存储图像文件.(数组的长度是图像文件的长度)
    byte[] Content=new byte[obj.Length];
    //打开文件并用他初始化一个文件流对象
    FileStream ImageFileStream=obj.OpenRead();
    //将文件内容写入字节数组
    ImageFileStream.Read(Content,0,Content.Length);
    //关闭文件流
    ImageFileStream.Close(); //创建一个Sql命令对象,用来插入记录
    SqlCommand Command=new SqlCommand("INSERT Into Images(Description,ImageFile,ImageSize,ImageType) Values(@Description,@ImageFile,@ImageSize,@ImageType)",this.MySqlCon); //图像的描述信息
    SqlParameter imageDescriptionParameter=new SqlParameter("@Description",SqlDbType.NVarChar);
    imageDescriptionParameter.Value=this.txtImage.Text;
    Command.Parameters.Add(imageDescriptionParameter); //图像的数据字节数组
    SqlParameter imageFileParameter=new SqlParameter("@ImageFile",SqlDbType.Image);
    imageFileParameter.Value=Content;
    Command.Parameters.Add(imageFileParameter); //图像的大小信息
    SqlParameter imageSizeParameter=new SqlParameter("@ImageSize",SqlDbType.Int);
    imageSizeParameter.Value=Content.Length;
    Command.Parameters.Add(imageSizeParameter); //图像的类型新信息
    SqlParameter imageTypeParameter=new SqlParameter("@ImageType",SqlDbType.NVarChar);
    imageTypeParameter.Value=obj.Extension;
    Command.Parameters.Add(imageTypeParameter);
        
    //打开数据库连接
    this.MySqlCon.Open();
    //执行 Sql 语句
    Command.ExecuteNonQuery();
    //关闭数据库连接
    this.MySqlCon.Close(); MessageBox.Show("图像文件 " + obj.FullName + " 成功上传到数据库!");
    }
    catch(Exception Ezone)
    {
    MessageBox.Show(Ezone.Message);
    }
    }
    /// <summary>
    /// 从数据库读取图像
    /// </summary>
    private void btnDownLoad_Click(object sender, System.EventArgs e)
    {
    try
    {
    //创建一个Sql命令对象,用来查询记录
    SqlCommand Command=new SqlCommand("select * from dazzle_pics where picid=71605 order by picid DESC",this.MySqlCon);
    //打开数据库连接
    this.MySqlCon.Open();
    //执行Sql语句
    SqlDataReader MyReader=Command.ExecuteReader(CommandBehavior.CloseConnection); MyReader.Read();
    //创建一个内存流对象并用ImageFile字段,ImageSize字段初始化他
    MemoryStream MyMemoryStream=new MemoryStream((byte[])MyReader["source"],0,Convert.ToInt32(MyReader["picSize"]));
    //创建一个 Image 对象,并赋值给 Picture对象的 Image 属性
    this.ImgPictureBox.Image=Image.FromStream(MyMemoryStream);
    //关闭内存流
    MyMemoryStream.Close();
    MyReader.Close();
    }
    catch(Exception Ezone)
    {
    MessageBox.Show(Ezone.Message);
    }
    }
      

  3.   

    我要WEB,主要是怎样确定,点击左边TREEVIEW中的一个产品,在右边表格(其中还有其他的数据)里的IMAGE控件里显示,对应的图片(存放在数据库里),问题是,如何确定选中的产品,对应数据库里的哪条记录??
      

  4.   

    源代码
    http://www.vchelp.net/vchelp/archive.asp?type_id=95&class_id=2&cata_id=21&article_id=848&search_term=