Catch SQLexc As SqlException
Response.Write("Insert Failed. Error Details are: " & SQLexc.ToString())
End Try
这是怎么工作的呢?
PersonImage 是 HTMLInputFile 控件的对象。首先需要获得图片的大小,可以使用下面
的代码实现:
intImageSize = PersonImage.PostedFile.ContentLength
然后返回图片的类型使用 ContenType 属性。最后,也是最重要的事就是取得
Image Stream,
这可以用以下代码实现:
ImageStream = PersonImage.PostedFile.InputStream
我们需要一个字节型数组来存储 image 内容。读取整个图片可以使用 Stream 对象
的 Read 方法来实现。Read(in byte[] buffer,int offset,int count)方法有三个参数。
【关于 Read 方法的详细可以参看.Net FrameWorkSDK
】他们是:
buffer
字节数组。此方法返回时,该缓冲区包含指定的字符数组,该数组的 offset 和
(offset + count) 之间的值由从当前源中读取的字节替换。
offset
buffer 中的从零开始的字节偏移量,从此处开始存储从当前流中读取的数据。
count
要从当前流中最多读取的字节数。
这个 Read
方法用以下代码实现:
intStatus = ImageStream.Read(ImageContent, 0, intImageSize)
.
现在,我们已经读取了整个图片的内容,下一步,我们要把这些内容存入到 sql 表。
我们将使用存储过程来完成插入图片类型和图片内容到 sql 表。如果你浏览了上面的代码,
你将会发现我们使用了 sqldbtype.image 的数据类型(datatype)。Ok 了,完成了这
些,我们也就成功的把图片存入到 SqlServer 中了。下面是我们编写的 aspx 页面。
图片存入数据库结论
我们已经讨论了如何把图片存入到 Sql Server,那么我们如何从 SqlServer 中读取
图片呢?可以参看我的另一篇文章:在 Asp.Net 中从 SqlServer 中检索图片。