以二进制形式将图片保存到数据库,用存诸过程实现(完整代码+sql语句)

  int intImageSize;
   string strImageType;
   Stream ImageStream;
   //gets the size of the image
            intImageSize =this.File1.PostedFile.ContentLength;
   //gets the image type
            strImageType=this.File1.PostedFile.ContentType;
   //reads the image
   ImageStream = this.File1.PostedFile.InputStream;
           
   byte [] ImageContent = new byte[intImageSize];
   int intStatus;
   intStatus=ImageStream.Read(ImageContent,0,intImageSize);
   string str=ConfigurationSettings.AppSettings["connString"];
   SqlConnection con = new SqlConnection(str);
   SqlCommand cmd = new SqlCommand("sp_person_isp",con);
   cmd.CommandType=CommandType.StoredProcedure;
   //parameters

   SqlParameter prmemail;
   prmemail = new SqlParameter("@PersonEmail",SqlDbType.VarChar);
   prmemail.Value=this.TextBox4.Text;
   cmd.Parameters.Add(prmemail);

   SqlParameter prmname;
   prmname=new SqlParameter("@PersonName",SqlDbType.VarChar);
   prmname.Value=this.TextBox1.Text;
   cmd.Parameters.Add(prmname);

   SqlParameter prmimaget;
   prmimaget = new SqlParameter("@PersonImageType",SqlDbType.VarChar);
   prmimaget.Value=strImageType;
   cmd.Parameters.Add(prmimaget);

   SqlParameter prmdata;
   prmdata= new SqlParameter("@PersonDOB",SqlDbType.DateTime);
   prmdata.Value=this.TextBox3.Text;
   cmd.Parameters.Add(prmdata);

   SqlParameter prmper ;
   prmper=new SqlParameter("@PersonImage",SqlDbType.Image);
   prmper.Value=ImageContent;
   cmd.Parameters .Add(prmper);

   SqlParameter prmSex;
   prmSex=new SqlParameter("@PersonSex",SqlDbType.Char,1);
   if(sexMale.Checked==true)
    prmSex.Value="M";
   else
    prmSex.Value="F";
   cmd.Parameters.Add(prmSex);
   try
   {
    con.Open();
    cmd.ExecuteNonQuery();
    con.Close();
    Response.Write("你已成功上传了你的信息!!");
   }
   catch(SqlException er)
   {
    Response.Write("失败:"+er.Message);
   }

//SQL部分

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Person]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Person]
GO

CREATE TABLE [dbo].[Person] (
 [PersonID] [int] IDENTITY (1, 1) NOT NULL ,
 [PersonEmail] [varchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
 [PersonName] [varchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
 [PersonSex] [char] (1) COLLATE Chinese_PRC_CI_AS NULL ,
 [PersonDOB] [datetime] NULL ,
 [PersonImage] [image] NULL ,
 [PersonImageType] [varchar] (255) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
--//create a procute
create Proc sp_person_isp
@PersonEmail Varchar(255),
@PersonName Varchar(255),
@PersonSex Char(1),
@PersonDOB DateTime,
@PersonImage Image,
@PersonImageType Varchar(255)
As
Begin
Insert into Person
(PersonEmail, PersonName, PersonSex,
PersonDOB, PersonImage, PersonImageType)
Values
(@PersonEmail, @PersonName, @PersonSex,
@PersonDOB, @PersonImage, @PersonImageType)
End

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值