应该没有要求的:
比如写入数据库:
SqlConnection myConnection = new SqlConnection(twoa.lib.DBData.ConnStr); int intImgDataLen  = FileImg.PostedFile.ContentLength;
byte[] ImgData = new byte[intImgDataLen];

ImgStream.Read(ImgData,0,intImgDataLen);

SqlCommand myCommand = new SqlCommand("INSERT INTO T_Port_NewsImg (ImgID,NewsID,NewsImg) VALUES (@ImgID , @NewsID , @ImgData)", myConnection); myCommand.Parameters.Add(new SqlParameter("@ImgData",SqlDbType.Image));
myCommand.Parameters["@ImgData"].Value=ImgData;
myCommand.Parameters.Add(new SqlParameter("@ImgID",SqlDbType.Int,10));
myCommand.Parameters["@ImgID"].Value = int.Parse(strImgID);
myCommand.Parameters.Add(new SqlParameter("@NewsID",SqlDbType.Int,10));
myCommand.Parameters["@NewsID"].Value = int.Parse(strNewsID); myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();从数据库中读出:
SqlCommand ncmdCommand = new SqlCommand(nstrSql,nclsDBData.Conn);
SqlDataReader ndrReader =ncmdCommand.ExecuteReader();
if(ndrReader.Read())
{
Response.Clear();
Response.ContentType = "image/jpeg";
Response.BinaryWrite( (byte[]) ndrReader[0] );
Response.End();
}注意这里:Response.ContentType = "image/jpeg";
我这里只是显示jpg和gif图片,你可以在输入的时候读出输入文件的contenttype写入数据库,这样输出的时候,从数据库中读出contenttype的值。

解决方案 »

  1.   

    if((imgstream=ofd.OpenFile())!=null)
    {
    // imgstream=new MemoryStream((byte[])this.pictureBox1.Image);
    byte[] imgData = new byte[imgstream.Length];//临时存放图片二进制数组
    imgstream.Read(imgData,0,imgData.Length);//图片二进制放入临时数组
    //把图片二进制文件插入数据库
    clsSQL insertimg=new clsSQL();
    。存完了后取得问题
    byte [] imgdata=(byte[])this.dtMaterialDetail.Rows[iNum][2];
    if(imgdata==null)return;
    Stream imgStream=new MemoryStream(imgdata);
    Image tempimg=Image.FromStream(imgStream);
    pbKeyImg.Image=tempimg;//关键帧图片
    pbKeyImg.SizeMode = PictureBoxSizeMode.StretchImage;