梦醒三分,执着疯子
没有什么不可以!

1、存储过程如下:
   CREATE PROCEDURE dbo.my_people_Photo
       @peopleID char(4),
       @img Image,
       @imgType varchar(20)
 AS
       Update PeopleTB SET Photo=@img,ImgType=@imgType where PeopleID=@PeopleID
GO

2、程序代码如下(注:peopleDg为DataGrid变量名ID):
     cmd=new SqlCommand("my_people_photo",conn);
     cmd.CommandType=CommandType.StoredProcedure;
     cmd.Parameters.Add("@peopleID",SqlDbType.Char,4);
     cmd.Parameters.Add("@img",SqlDbType.Image);
     cmd.Parameters.Add("@imgType",SqlDbType.VarChar,20);

     cmd.Parameters["@peopleID"].Value=peopleDg.Items[peopleDg.SelectedIndex].Cells[1].Text.Trim();
    
     int fileLen = loadImg.PostedFile.ContentLength;
     byte[] pic = new byte[fileLen];
     loadImg.PostedFile.InputStream.Read(pic, 0, fileLen);

     cmd.Parameters["@img"].Value=pic;
     cmd.Parameters["@imgType"].Value=loadImg.PostedFile.ContentType.ToString().Trim();
     showImg.ImageUrl=loadImg.PostedFile.FileName;

     cmd.ExecuteNonQuery();

3、取出、显示照片代码:
    1)showImg为Image变量名ID
    showImg.ImageUrl="ShowPic.aspx?ID="+peopleRead.GetString(1).Trim();

    2)ShowPic.aspx中的代码如下:
    SqlCommand cmd=new SqlCommand("select ImgType,Photo From PeopleTB where PeopleID='"+id+"'",conn);
    SqlDataReader reader=cmd.ExecuteReader();
    if(reader.Read())
    {
        Response.Clear();
        Response.ContentType = reader.GetString(0).ToString().Trim();
        Response.BinaryWrite((byte[])reader["Photo"]);
        Response.End();
    }
     reader.Close();

posted on 2007-04-06 10:28  Jacker.W  阅读(590)  评论(0编辑  收藏  举报