- 浏览: 66228 次
- 性别:
- 来自: 重庆
最新评论
利用Dataset可以方便的对SQL Server中的二进制文件进行存取与更新操作,下面是详细的代码演示
演示环境:
数据库机器名 :s_test
登陆名 :sa
密码 :7890
数据库名 db_test
下面建立一个表:
create table tb_test(id int identity(1,1),photo image ,constraint pk_tb_test primary key(id))
一、将硬盘上的文件保存至数据库(VB.NET)
'----------------------------------------------------------
'----------------------------------------------------------
'下面的示例将c:\1.jpg文件保存至数据库的tb_test表中
'----------------------------------------------------------
'----------------------------------------------------------
Imports System.IO
Imports System.Data.SqlClient
Public Class image
Shared Sub Main()
'读入文件数据
Dim fs = New FileStream("c:\1.jpg", IO.FileMode.Open, IO.FileAccess.Read)
Dim imgData(fs.Length - 1) As Byte
fs.Read(imgData, 0, fs.Length - 1)
fs.close()
Dim tempConnection As New SqlConnection
Dim tempAdapter As SqlDataAdapter
Dim tempDataset As New DataSet
'打开数据库连接
tempConnection.ConnectionString = "server=s_Test;uid=sa;pwd=7890;database=db_test"
tempConnection.Open()
tempAdapter = New SqlDataAdapter("SELECT * FROM tb_test WHERE 1=0", tempConnection)
Dim cb As New SqlCommandBuilder(tempAdapter)
tempAdapter.Fill(tempDataset)
'插入一条记录
Dim tempDataRow As DataRow
tempDataRow = tempDataset.Tables(0).NewRow()
tempDataRow("photo") = imgData
tempDataset.Tables(0).Rows.Add(tempDataRow)
tempAdapter.Update(tempDataset)
tempConnection.Close()
End Sub
End Class
二、将数据库中的文件保存至硬盘(VB.NET)
'----------------------------------------------------------
'----------------------------------------------------------
'下面的示例将数据库的tb_test表中第一条记录的photo保存至c:\2.jpg
'----------------------------------------------------------
'----------------------------------------------------------
Imports System.IO
Imports System.Data.SqlClient
Public Class image
Shared Sub Main()
Dim tempConnection As New SqlConnection
Dim tempAdapter As SqlDataAdapter
Dim tempDataset As New DataSet
'打开数据库连接,取出数据
tempConnection.ConnectionString = "server=s_test;uid=sa;pwd=7890;database=db_test"
tempConnection.Open()
tempAdapter = New SqlDataAdapter("SELECT TOP 1 * FROM tb_test", tempConnection)
tempAdapter.Fill(tempDataset)
tempConnection.Close()
If tempDataset.Tables(0).Rows.Count > 0 Then
'将文件保存到硬盘文件c:\2.jpg
Dim imgData() As Byte
imgData = tempDataset.Tables(0).Rows(0).Item("photo")
Dim fs As FileStream
fs = File.Create("c:\2.jpg", imgData.Length - 1)
fs.Write(imgData, 0, imgData.Length - 1)
fs.Close()
End If
End Sub
End Class
三、更新数据库中保存的文件
'----------------------------------------------------------
'----------------------------------------------------------
'下面的示例用将数据库的tb_test表中第一条记录的photo更新为c:\2.jpg
'----------------------------------------------------------
'----------------------------------------------------------
Imports System.IO
Imports System.Data.SqlClient
Public Class image
Shared Sub Main()
'读取文件
Dim fs = New System.IO.FileStream("c:\2.jpg", IO.FileMode.Open, IO.FileAccess.Read)
Dim imgData(fs.Length - 1) As Byte
fs.Read(imgData, 0, fs.Length - 1)
fs.close()
Dim tempConnection As New SqlConnection
Dim tempAdapter As SqlDataAdapter
Dim tempDataset As New DataSet
'打开数据库连接,取出数据
tempConnection.ConnectionString = "server=s_test;uid=sa;pwd=7890;database=db_test"
tempConnection.Open()
tempAdapter = New SqlDataAdapter("SELECT TOP 1 * FROM tb_test", tempConnection)
tempAdapter.Fill(tempDataset)
'更新数据
Dim cb As New SqlCommandBuilder(tempAdapter)
tempDataset = New DataSet
tempAdapter.Fill(tempDataset)
tempDataset.Tables(0).Rows(0).Item("photo") = imgData
tempAdapter.Update(tempDataset)
tempConnection.Close()
End Sub
End Class
总结:
利用Dataset可以方便的对SQL Server中的二进制文件进行存取与更新操作,虽不是最有效的方法,但通过文本的介绍,可使初学者多掌握一种对数据库中的二进制文件进行操作的方法,希望对开发者有所帮助
发表评论
-
SQL server无法执行查询,因为一些文件丢失或未注册等问题的解决
2010-07-12 13:22 2855症状:在SQL server 2000中打开表查看数据的时 ... -
归纳一下:C#线程同步的几种方法
2009-12-24 23:04 1329我们在编程的时候,有时会使用多线程来解决问题,比如你的程序需要 ... -
C#进度条的使用
2009-12-21 18:05 3556C#进度条的使用及开发 ... -
C#读取XML文件
2009-12-20 22:49 2912本文源自:http://blog.163. ... -
OpenFileDialog控件
2009-12-17 21:52 3478打开文件对话框(OpenFileDialog) ... -
c#数据库存取二进制文件
2009-12-10 21:14 3061利用ADO.NET中的OleDbConnection\OleD ... -
access数据库用二进制储存图片,并在web页面显示
2009-12-09 22:10 1625储存:传入确定图片的唯一序列号id 和图片的保存路径fileP ... -
C# 怎样把二进制文件写入Access数据库
2009-12-09 22:09 2250OleDbConnection Mycon = new Ole ... -
c#_string与byte[]之间的转换
2009-10-28 18:48 1397先将stirng s 转换成byte[]存放到source中, ... -
C#_多线程编程
2009-10-28 18:47 834.NET将关于多线程的功 ... -
c#_使用Socket获取IP地址
2009-10-28 18:47 1713Socket socket = new Socket( Add ... -
c#_使用委派修改线程外构造的对象
2009-10-28 18:46 663//定义委派函数(参数与要线程中要执行的函数的参数一致)pub ... -
c#_判断Tcp连接是否可用(Connected)
2009-10-28 18:45 1758//use funciton isConnected to j ... -
c#_监听TCP连接请求
2009-10-28 18:44 13281、use TcpListenerTcpListener ls ... -
网页倒计时
2009-10-05 08:52 838<!DOCTYPE html PUBLIC " ... -
s2sh 中文问题解决
2009-04-13 00:12 860今天配置S2SH ,才发现有些东西,只必须自己亲自动手的,乱码 ...
相关推荐
Imports System.IO Imports System.Data.SqlClient Public Class image Shared Sub Main() '读入文件数据 Dim fs = New FileStream("c:\1.jpg", IO.FileMode.Open, IO.FileAccess.... '打开数据库连接
VB.NET 字符串与二进制间的转换 VB.NET 字符串与二进制间的转换 VB.NET 字符串与二进制间的转换 VB.NET 字符串与二进制间的转换 VB.NET 字符串与二进制间的转换
源代码基于VB.net对二进制文件进行读写操作。
VB.NET随便写的,要用看情况自己修改.
VB.NET 进制转换 2进制 8进制 10进制 16进制 实现互转 自己写的代码有不足之处请多包涵
此实例为VS2008环境下 VB.NET 编写的 SerialPort通信为16进制,可以改为字符串 内含不同种类的2种时间延时方法及如何取得串口号等。
vb.net数据库连接实例,人事管理系统,数据库管理系统,图书馆管理,学生名册管理系统
VB.NET 使用Access数据库保存和读取图片文件;并连接到datagridview
vb.net 数据库访问类vb.net 数据库访问类
到我的博客去哦,有更多的源码下载的………… http://blog.csdn.net/mohongmao/
VB .NET数据库编程从入门到精通,对于快速了解VB .NET数据库编程有所帮助
《VB.NET数据库编程》共分为三个部分,依次讲述了VB.E和AD.E的工作原理讲起,介绍了有关数据库访问、错误处理、存储过程、视图、触发器、消息队列、数据外壳,以及数据绑定控件的知识,并完整地实现了一个名为UserMa...
一个用 vb.net2005实现数据库添加,删除,查询的简单项目,内含注释!
VB.net数据库编程
VB.NET 数据库入门经典(第2版)VB.NET 数据库入门经典(第2版)
《VB.NET数据库编程》作者石志国—PPT合并.ppt
vb.net 数据库编程pdf和codesvb.net 数据库编程pdf和codesvb.net 数据库编程pdf和codes
vb.net 数据库连接 希望对大家有用
vb.net 数据库 项目源码 图书管理系统源码,图书在线借阅系统,学生管理系统,学生名册管理系统