基于.NET的Image数据类型字段的应用.doc
文本预览下载声明
基于.NET的Image数据类型字段的应用
[摘要]文章探讨在Visual Basic.NET中怎样把图片文件写入到SQL Server数据库,以及怎样把SQL Server数据库中Image数据类型字段读出并显示到图片框控件中的执行程序。
[关键词]信息管理系统; SQL Server;图片;VB.NET
[作者简介]毕传林,江西九江职业技术学院计算机教研室讲师,研究方向:计算机软件,江西九江,332007;占跃华,江西九江职业技术学院计算机教研室副教授,研究方向:计算机软件,江西九江,332007
[中图分类号] TP393.09 [文献标识码] A [文章编号] 1007-7723(2008)02-0036-0002
信息管理系统开发中,经常会涉及到图片的显示,通常是把图片作为一个文件来存放在服务器端,在客户端找到相应的图片文件并显示出来。但是有时对图片文件的路径很难定位,如果能将图片文件内容同样保存在数据库中的字段中,和其他信息一样的访问,这样会给程序设计带来很大便利。其实在SQL Server数据库中提供一种Image数据类型的字段,但是该字段的值不能直接输入,而需要编写程序才能把数据写进去,同时也要通过程序才能把其内容读出来。
下面探讨在VB.NET中怎样把照片文件写入到SQL Server数据库Image数据类型的字段中,同时在显示图片时,又怎样把图片从数据库读出并显示出来。
假设在SQL Server数据库中已创建好数据库名称为Newstudent,且在该数据库中存在一张表temp,表中有三个字段Id(char(10),主键) ,Name(char(20)),photo(image,用来存放图片)。
在VB.NET2003中新建一个项目,在窗口Form1上添加1个图片框(PictureBox1)、1个打开文件对话框(OpenFileDialog1)、2个命令按钮,窗口设计如图1所示。保存按钮用来把图片文件内容读出并保存到数据表Temp的photo字段中;“读出” 按钮用来把数据表的photo字段的值读出并在图片框(PictureBox1)中显示出来。
一、图片的写入
思路:首先要选择一幅图片,把图片文件以二进制流的形式打开并读出,读出的文件内容保存到一个字节类型的数组中。然后连接数据库,执行SQL命令(如插入或更新命令)把字节数组的值即图片文件的内容保存SQL Server数据库中。程序如下:
单击保存按钮读出用户选择的图片内容并写入到SQL Server数据库的Image类型的字段中。保存按钮的单击事件代码:
OpenFileDialog1.Filter = JPG文件|*.JPG|所有文件|*.*
显示打开文件对话框,如用户单击了确定按钮,则打开文件
If OpenFileDialog1.ShowDialog = DialogResult.OK Then
Dim FileName As String
FileName = OpenFileDialog1.FileName 得到用户所选择的文件名
Dim f As New FileStream(FileName, FileMode.Open) 以读的方式打开文件
Dim r As New BinaryReader(f) 定义一个BinaryReader对象来读取二进制文件
Dim lenth As Int32
lenth = f.Length 得到文件的长度
Dim b(lenth) As Byte 定义一个字节类型的数组b,数组元素个数为文件长度
b = r.ReadBytes(lenth) 读出文件内容
Dim conStr As String = server=localhost;uid=sa;pwd=;database=newstudent
Dim conn As New SqlConnection(conStr) 定义数据库连接对象
conn.Open() 打开数据库连接
Dim sql As String 定义一个SQL命令
sql = insert into temp(id,name,photo) values(100001,王成,@b)
Dim cmd As New SqlCommand(sql, conn) 定义一个命令对象用来执行SQL命令
定义一个参数,类型为Image
Dim paramData As SqlParameter = New SqlParameter(@b, Sql
显示全部