这是把图片存储到数据库中的代码:
try
{
string aaa=Request.QueryString["Item_ID"].ToString();
string fullName=this.File1.PostedFile.FileName;
string fileName=fullName.Substring(fullName.LastIndexOf("\\")+1);
string fileExpert=fullName.Substring(fullName.LastIndexOf(".")+1);
if(!(fileExpert=="jpg"||fileExpert=="gif"||fileExpert=="bmp"))
{
this.Label1.Text="您输入的格式不正确";
}
else
{
HttpPostedFile upFile = this.File1.PostedFile;
filelen=upFile.ContentLength;
Byte[] fileData = new byte[filelen];//用图片的长度来初始化一个字节数组存储临时的图片文件
Stream fileStream = upFile.InputStream;//建立文件流对象
fileStream.Read(fileData,0,filelen);//读取图片数据到临时存储体fileByte,0为数据指针位置,fileLength为数据长度
SqlConnection con=db.createcon();
con.Open();
SqlCommand cmd=new SqlCommand("update APPLY  set report=@report,image_content_type=@image_content_type,image_size=@image_size where APPLY_ID='"+aaa+"'",con);
SqlParameter spr=new SqlParameter("@report",SqlDbType.Image,16);
spr.Value=fileData;
cmd.Parameters.Add(spr);
SqlParameter spr1=new SqlParameter("@image_content_type",SqlDbType.VarChar,50);
spr1.Value=upFile.ContentType;
cmd.Parameters.Add(spr1);
SqlParameter spr2=new SqlParameter("@image_size",SqlDbType.Int,4);
spr2.Value=upFile.ContentLength;
cmd.Parameters.Add(spr2);
                    cmd.ExecuteNonQuery();
this.File1.PostedFile.SaveAs(Server.MapPath("images")+"\\"+fileName);
Response.Write("<script language=javascript>alert('上传成功');window.close();</script>");
}
}
catch(Exception error)
{
                this.Label1.Text="处理失败!原因为:"+error.ToString();
}

解决方案 »

  1.   

    SqlDataReader sdr=cmd.ExecuteReader();
    =========================================
    SqlDataReader sdr=cmd.ExecuteReader(CommandBehavior.SequentialAccess);
      

  2.   

    我试的这个。成功过。(数据库是DB2),你稍稍改一下。
    以二进制进行存储和读取图片 
    http://blog.csdn.net/Eray/archive/2007/04/01/1548505.aspx