C读写SQL数据库Image字段剖析_第1页
C读写SQL数据库Image字段剖析_第2页
C读写SQL数据库Image字段剖析_第3页
C读写SQL数据库Image字段剖析_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C#读写SQL数据库Image字段解析C#读写SQL数据库Image字段解析5/5C#读写SQL数据库Image字段解析C#读写SQL数据库Image字段2009-01-3119:27在用C#对数据库Image字段读写过程中,遇到了一些问题,在网上找寻发现此类问题比很多,但是很少供应比较全面的答案,在此我从对Image字段读写文件和读写图片两个方面谈谈我的认识.在讲主题从前,我应该说明一点,数据库的Image字段保存的是字节,所以写入数据库Image字段和从数据库Image字段读取的内容都应该为字节.1、数据库Image字段读写文件写文件:写文件的过程为将文件以流文件形式打开并将内容读取到一个

2、byte数组,尔后将此byte数组写入数据库的Image字段。源码:FileInfofinfo=newFileInfo(文件名;/绝对路径if(finfo.ExistsSqlConnectionconn=newSqlConnection(连接字符串;SqlCommandInsertCommand=newSqlCommand(;InsertCommand.Connection=conn;InsertCommand.CommandText=Insertinto表名(Image字段名values(Content;InsertCommand.Parameters.Add(Content,SqlDbTy

3、pe.Image,(intfinfo.Length,Image字段名;/注意,此处参数Size为写入的字节数/读取文件内容,写入byte数组bytecontent=newbytefinfo.Length;FileStreamstream=finfo.OpenRead(;stream.Read(content,0,content.Length;stream.Close(;InsertCommand.ParametersContent.Value=content;/为参数赋值tryconn.Open(;InsertCommand.ExcuteNonQuery(;finallyconn.Close(

4、;读文件:读文件的过程为从数据库的Image字段读取内容保存到byte数组,今后将此byte数组以文件流形式写入文件。源码:bytecontent;SqlConnetionconn=newSqlConnection(连接字符串;SqlDataAdapterda=newSqlDataAdapter(SelectImage字段名from表名,conn;DataSetds=newDataSet(;da.Fill(da,word;DataRowdr=ds.Tablesword.Rows0;/将读取的第一行内容保存到drcontent=(bytedrImage字段名;intArraySize=conte

5、nt.GetUpperBound(0;FileStreamstream=newFileStream(文件名,FileMode.OpenOrCreate,FileAccess.Write;stream.Write(content,0,ArraySize;stream.Close(;2、数据库Image字段读写图片绑定到控件的方式:经过将Image字段绑定到PictureBox实现。文件中我供应了一个实例,要正常运行需要在Northwind中增加数据库表Employees,数据库表的结构为EmployeeIDInt(4自动增加,FirstNamenvarchar(10,LastNamenvarch

6、ar(20,Photoimage(16null。直接用SqlCommand实现:其实掌握住Image字段存的是byte种类数据,用SqlCommand实现增加、更正就很简单了,跟文本的差异就是在读出的时候需要将byte种类数据转变成Image图片,在写入时需要将Image图片以流的形式转为为byte数组,今后再将byte数组保存到Image字段。实例:comm=InsertintoMyEmployees(FirstName,LastName,Photovalues(FName,LName,Photo;SqlCommandcommand=newSqlCommand(comm;command.Co

7、nnection=conn;/创办Parametercommand.Parameters.Add(FName,SqlDbType.NVarChar;command.Parameters0.Value=textBox1.Text;command.Parameters.Add(LName,SqlDbType.NVarChar;command.Parameters1.Value=textBox2.Text;command.Parameters.Add(Photo,SqlDbType.Image;command.Parameters2.Value=imgByte;其中imgByte为Byte数组,经过FileStream的Read填充的byte数据。DataRowdr=dt.Tables0.Rows0;bytebr=null;MemoryStreamms=newMemoryStream(;if(drimage1.ToString(!=br=(bytedrimage1;ms=newMemoryStream(br,0,br.Length;this.pictureBox1.SizeMo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论