向SQLServer数据库添加图片Word版.doc

上传人:rrsccc 文档编号:9474870 上传时间:2021-02-28 格式:DOC 页数:34 大小:77.50KB
返回 下载 相关 举报
向SQLServer数据库添加图片Word版.doc_第1页
第1页 / 共34页
向SQLServer数据库添加图片Word版.doc_第2页
第2页 / 共34页
向SQLServer数据库添加图片Word版.doc_第3页
第3页 / 共34页
向SQLServer数据库添加图片Word版.doc_第4页
第4页 / 共34页
向SQLServer数据库添加图片Word版.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《向SQLServer数据库添加图片Word版.doc》由会员分享,可在线阅读,更多相关《向SQLServer数据库添加图片Word版.doc(34页珍藏版)》请在三一文库上搜索。

1、传播优秀Word版文档 ,希望对您有帮助,可双击去除!程序代码:下面的代码实现向SQLServer数据库添加图片和文字的功能。首先,在SQL查询分析器中执行下面的语句,以创建表和存储过程。DropTablePersonGoCreateTablePerson(PersonIDIntIdentity,PersonEmailVarchar(255),PersonNameVarchar(255),PersonSexChar(1),PersonDOBDateTime,PersonImageImage,PersonImageTypeVarchar(255)DropProcsp_person_ispGoCr

2、eateProcsp_person_ispPersonEmailVarchar(255),PersonNameVarchar(255),PersonSexChar(1),PersonDOBDateTime,PersonImageImage,PersonImageTypeVarchar(255)AsBeginInsertintoPerson(PersonEmail,PersonName,PersonSex,PersonDOB,PersonImage,PersonImageType)Values(PersonEmail,PersonName,PersonSex,PersonDOB,PersonIm

3、age,PersonImageType)EndGo下面就是完整的代码,拷贝即可运行:向SQLServer插入图片PublicSubAddPerson(senderAsObject,eAsEventArgs)DimintImageSizeAsInt64DimstrImageTypeAsStringDimImageStreamAsStream获得图片的大小intImageSize=PersonImage.PostedFile.ContentLength获得图片类型strImageType=PersonImage.PostedFile.ContentType读取图片ImageStream=Perso

4、nImage.PostedFile.InputStreamDimImageContent(intImageSize)AsByteDimintStatusAsIntegerintStatus=ImageStream.Read(ImageContent,0,intImageSize)创建Connection和Command对象DimstrCnnAsString=DataSource=.;InitialCatalog=mxh;UserId=sa;Password=;DimmyConnectionAsNewSqlConnection(strCnn)DimmyCommandAsNewSqlCommand

5、(sp_person_isp,myConnection)使用存储过程myCommand.CommandType=CommandType.StoredProcedure向存储过程添加参数DimprmEmailAsNewSqlParameter(PersonEmail,SqlDbType.VarChar,255)prmEmail.Value=txtPersonEmail.TextmyCommand.Parameters.Add(prmEmail)DimprmNameAsNewSqlParameter(PersonName,SqlDbType.VarChar,255)prmName.Value=tx

6、tPersonName.TextmyCommand.Parameters.Add(prmName)DimprmSexAsNewSqlParameter(PersonSex,SqlDbType.Char,1)IfsexMale.CheckedThenprmSex.Value=MElseprmSex.Value=FEndIfmyCommand.Parameters.Add(prmSex)DimprmPersonDOBAsNewSqlParameter(PersonDOB,SqlDbType.DateTime)prmPersonDOB.Value=txtPersonDob.TextmyCommand

7、.Parameters.Add(prmPersonDOB)DimprmPersonImageAsNewSqlParameter(PersonImage,SqlDbType.Image)prmPersonImage.Value=ImageContentmyCommand.Parameters.Add(prmPersonImage)DimprmPersonImageTypeAsNewSqlParameter(PersonImageType,SqlDbType.VarChar,255)prmPersonImageType.Value=strImageTypemyCommand.Parameters.

8、Add(prmPersonImageType)TrymyConnection.Open()myCommand.ExecuteNonQuery()myConnection.Close()Response.Write(添加成功!)CatchSQLexcAsSqlExceptionResponse.Write(添加失败,原因:&SQLexc.ToString()EndTryEndSub本日志由 迈克老猫 于 2005-01-06 10:43 PM 编辑引用通告地址 (0):收藏此页http:/ 于 2004-06-09 05:16 PM 发表评论:SQLServer提供了一个特别的数据类型:imag

9、e,它是一个包含.SQLServer提供了一个特别的数据类型:image,它是一个包含binary数据的类型。下边这个例子就向你展示了如何将文本或照片放入到数据库中的办法。在这篇文章中我们要看到如何在SQLServer中存储和读取图片。1、建立一个表:在SQLSERVER中建立这样结构的一个表:列名类型目的IDInteger主键IDIMGTITLEVarchar(50)图片的标题IMGTYPEVarchar(50)图片类型.ASP.NET要以辨认的类型IMGDATAImage用于存储二进制数据2、存储图片到SQLSERVER数据库中为了能存储到表中,你首先要上传它们到你的WEB服务器上,你可以

10、开发一个webform,它用来将客户端中TextBoxwebcontrol中的图片入到你的WEB服务器上来。将你的encType属性设置为:myltipart/formdata.Streamimgdatastream=File1.PostedFile.InputStream;intimgdatalen=File1.PostedFile.ContentLength;stringimgtype=File1.PostedFile.ContentType;stringimgtitle=TextBox1.Text;byteimgdata=newbyteimgdatalen;intn=imgdatastr

11、eam.Read(imgdata,0,imgdatalen);stringconnstr=(NameValueCollection)Context.GetConfig(appSettings)connstr;SqlConnectionconnection=newSqlConnection(connstr);SqlCommandcommand=newSqlCommand(INSERTINTOImageStore(imgtitle,imgtype,imgdata)VALUES(imgtitle,imgtype,imgdata),connection);SqlParameterparamTitle=

12、newSqlParameter(imgtitle,SqlDbType.VarChar,50);paramTitle.Value=imgtitle;command.Parameters.Add(paramTitle);SqlParameterparamData=newSqlParameter(imgdata,SqlDbType.Image);paramData.Value=imgdata;command.Parameters.Add(paramData);SqlParameterparamType=newSqlParameter(imgtype,SqlDbType.VarChar,50);par

13、amType.Value=imgtype;command.Parameters.Add(paramType);connection.Open();intnumRowsAffected=command.ExecuteNonQuery();connection.Close();3、从数据库中恢复读取现在让我们来从SQLServer中读取我们放入的数据吧!我们将要输出图片到你的浏览器上,你也可以将它存放到你要的位置。privatevoidPage_Load(objectsender,System.EventArgse)stringimgid=Request.QueryStringimgid;stri

14、ngconnstr=(NameValueCollection)Context.GetConfig(appSettings)connstr;stringsql=SELECTimgdata,imgtypeFROMImageStoreWHEREid=+imgid;SqlConnectionconnection=newSqlConnection(connstr);SqlCommandcommand=newSqlCommand(sql,connection);connection.Open();SqlDataReaderdr=command.ExecuteReader();if(dr.Read()Res

15、ponse.ContentType=drimgtype.ToString();Response.BinaryWrite(byte)drimgdata);connection.Close();要注意的是Response.BinaryWrite而不是Response.Write.下面给大家一个用于C#Winform的存入、读取程序。其中不同请大家自己比较!(为了方便起见,我将数据库字段简化为二个:imgtitle和imgdata。usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;us

16、ingSystem.Windows.Forms;usingSystem.Data;usingSystem.IO;usingSystem.Data.SqlClient;namespaceWindowsApplication21/summary/Form1的摘要说明。/summarypublicclassForm1:System.Windows.Forms.FormprivateSystem.Windows.Forms.Buttonbutton1;/summary/必需的设计器变量。/summaryprivateSystem.ComponentModel.Containercomponents=n

17、ull;privatestringConnectionString=IntegratedSecurity=SSPI;InitialCatalog=;DataSource=localhost;privateSqlConnectionconn=null;privateSqlCommandcmd=null;privateSystem.Windows.Forms.Buttonbutton2;privateSystem.Windows.Forms.PictureBoxpic1;privateSystem.Windows.Forms.OpenFileDialogopenFileDialog1;privat

18、estringsql=null;privateSystem.Windows.Forms.Labellabel2;privatestringnowId=null;publicForm1()/Windows窗体设计器支持所必需的/InitializeComponent();conn=newSqlConnection(ConnectionString);/TODO:在InitializeComponent调用后添加任何构造函数代码/summary/清理所有正在使用的资源。/summaryprotectedoverridevoidDispose(booldisposing)if(conn.State=

19、ConnectionState.Open)conn.Close();if(disposing)if(components!=null)components.Dispose();base.Dispose(disposing);#regionWindowsFormDesignergeneratedcode/summary/设计器支持所需的方法-不要使用代码编辑器修改/此方法的内容。/summaryprivatevoidInitializeComponent()this.button1=newSystem.Windows.Forms.Button();this.pic1=newSystem.Wind

20、ows.Forms.PictureBox();this.button2=newSystem.Windows.Forms.Button();this.openFileDialog1=newSystem.Windows.Forms.OpenFileDialog();this.label2=newSystem.Windows.Forms.Label();this.SuspendLayout();/button1/this.button1.Location=newSystem.Drawing.Point(0,40);this.button1.Name=button1;this.button1.Size

21、=newSystem.Drawing.Size(264,48);this.button1.TabIndex=0;this.button1.Text=加入新的图片;this.button1.Click+=newSystem.EventHandler(this.button1_Click);/pic1/this.pic1.Location=newSystem.Drawing.Point(280,8);this.pic1.Name=pic1;this.pic1.Size=newSystem.Drawing.Size(344,264);this.pic1.TabIndex=3;this.pic1.Ta

22、bStop=false;/button2/this.button2.Location=newSystem.Drawing.Point(0,104);this.button2.Name=button2;this.button2.Size=newSystem.Drawing.Size(264,40);this.button2.TabIndex=4;this.button2.Text=从数据库中恢复图像;this.button2.Click+=newSystem.EventHandler(this.button2_Click);/openFileDialog1/this.openFileDialog

23、1.Filter=图像文件(*.jpg,*.bmp,*.gif)|*.jpg|*.bmp|*.gif;/label2/this.label2.Location=newSystem.Drawing.Point(0,152);this.label2.Name=label2;this.label2.Size=newSystem.Drawing.Size(264,48);this.label2.TabIndex=5;/Form1/this.AutoScaleBaseSize=newSystem.Drawing.Size(6,14);this.ClientSize=newSystem.Drawing.S

24、ize(632,273);this.Controls.AddRange(newSystem.Windows.Forms.Controlthis.label2,this.button2,this.pic1,this.button1);this.Name=Form1;this.Text=Form1;this.Load+=newSystem.EventHandler(this.Form1_Load);this.ResumeLayout(false);#endregion/summary/应用程序的主入口点。/summarySTAThreadstaticvoidMain()Application.Ru

25、n(newForm1();privatevoidbutton1_Click(objectsender,System.EventArgse)openFileDialog1.ShowDialog();if(openFileDialog1.FileName.Trim()!=)FileInfofi=newFileInfo(openFileDialog1.FileName);stringimgtitle=openFileDialog1.FileName;intimgdatalen=(int)fi.Length;byteimgdata=newbyteimgdatalen;Streamimgdatastre

26、am=fi.OpenRead();intn=imgdatastream.Read(imgdata,0,imgdatalen);if(conn.State=ConnectionState.Open)conn.Close();ConnectionString=IntegratedSecurity=SSPI;+InitialCatalog=mydb;+DataSource=localhost;conn.ConnectionString=ConnectionString;trystringmySelectQuery=INSERTINTOImageStore(imgtitle,imgdata)VALUE

27、S(imgtitle,imgdata);/stringmySelectQuery=UPDATEImageStoresetimgtitle=imgtitle,imgdata=imgdata;SqlCommandmyCommand=newSqlCommand(mySelectQuery,conn);SqlParameterparamTitle=newSqlParameter(imgtitle,SqlDbType.VarChar,50);paramTitle.Value=imgtitle;myCommand.Parameters.Add(paramTitle);SqlParameterparamDa

28、ta=newSqlParameter(imgdata,SqlDbType.Image);paramData.Value=imgdata;myCommand.Parameters.Add(paramData);conn.Open();intnumRowsAffected=myCommand.ExecuteNonQuery();conn.Close();catch(Exceptionerr)MessageBox.Show(您输入名称可能在数据库中已存在或输入为空,请检查!+err.ToString();finallyprivatevoidForm1_Load(objectsender,System

29、.EventArgse)privatevoidbutton2_Click(objectsender,System.EventArgse)/打开数据库连接if(conn.State=ConnectionState.Open)conn.Close();ConnectionString=IntegratedSecurity=SSPI;+InitialCatalog=mydb;+DataSource=localhost;conn.ConnectionString=ConnectionString;/创建数据适配器stringsql=SELECT*FROMImageStore;SqlCommandcom

30、mand=newSqlCommand(sql,conn);tryconn.Open();catch(Exceptionnewerr)MessageBox.Show(不能打开数据联接!);finallySqlDataReaderdr=command.ExecuteReader();if(dr.Read()FileInfofi=newFileInfo(temp);FileStreammyStream=fi.Open(FileMode.Create);bytemydata=(byte)drimgdata);/label2.Text=您现在看到的是:+drimgtitle.ToString();foreach(byteainmydata)myStream.WriteByte(a);myStream.Close();ImagemyImage=Image.FromFile(temp);pic1.Image=myImage;pic1.Refresh();dr.Close();elseMessageBox.Show(没有成功读入数据!);conn.Close();KusTa 于 2004-06-09 02:51 AM 发表评论:用VB6读写数据库中的图片(可能扯得有点远,不需要可以不看)http:.用VB6读写数据库中的图片(可能扯得有点远,不需要可以不看)http:/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1