VB中上传下载文件到SQL数据库

编写人:左丘文

2015-4-11

近期在修改一个VB编写的系统时,想给画面增加一个上传文件到数据库,并可以下载查看的功能,今天在这里,我想与大家一起分享代码,在此做个小结,以供参考。有兴趣的同学,可以一同探讨与学习一下,否则就略过吧。

 

1、 首先要保存文件到数据库,我们需要使用流对象保存,所以第一时间先在数据库中增加

一个image的字段(注意:Access中的photo字段类型为OLE对象.SqlServer中的photo字段类型为Image),用于存储文件。

2、 下面再在画面增加用于上传及下载的CommandButton及一个commondialog:

1)         数据库连接处理

 1 Private Sub Form_Load()
 2     '数据库连接字符串
 3  Connstring="Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" & _
 4 ";Data Source=d:\csdn_vb\database\保存图片\access图片\img.mdb"
 5  
 6 ‘下面的语句是连接sqlserver数据库的.
 7 ‘Connstring="Provider=SQLOLEDB.1;Persist Security Info=True;" & _
 8 ‘"User ID=sa;Password=;Initial Catalog=test;Data Source=yang"
 9    Set Conn = New ADODB.Connection
10    Conn.Open Connstring
11 End Sub

2)         上传文件处理

 1 Private Sub cmdUpload_Click()
 2 ** 引用 Microsoft ActiveX Data Objects 2.5 Library 及以上版本
 3 ‘2.5版本以下不支持Stream对象
 4  
 5 On Error GoTo handleErr
 6 Dim rs As ADODB.Recordset
 7 Dim mstream As ADODB.Stream
 8  
 9 '保存文件到数据库中
10 Set rs = New ADODB.Recordset
11 With rs
12         .ActiveConnection = Conn
13         .LockType = adLockOptimistic
14         .CursorLocation = adUseClient
15         .CursorType = adOpenKeyset
16         .Open "SELECT * from SR WHERE SRNUM='" & txtSRNUM.Text & "'"
17     End With
18  
19  
20  
21 CommonDialog1.Filter = "Pictures (*.PDF;*.pdf)|*.PDF;*.pdf"
22 CommonDialog1.ShowOpen
23 If CommonDialog1.filename = "" Then Exit Sub
24  
25 If (rs.RecordCount = 1) Then
26  
27  
28 '读取文件到内容
29     Set mstream = New ADODB.Stream
30     With mstream
31         .Type = adTypeBinary   '二进制模式
32         .Open
33         .LoadFromFile CommonDialog1.filename
34     End With
35  
36 rs.Fields("FileName").Value = CommonDialog1.FileTitle
37 rs.Fields("FileUploadTime").Value = Format(Now, "YYYY-MM-DD hh:mm")
38 rs.Fields("FileNameContent") = mstream.Read
39 rs.update
40 '完成后关闭对象
41 mstream.Close
42  
43 End If
44 rs.Close
45  Set rs = Nothing
46 txtFileName.Text = CommonDialog1.FileTitle
47  
48 Exit Sub
49  
50 handleErr:
51   MsgBox ERR.Description
52 End Sub

View Code

3)         下载文件处理

 1 Private Sub cmdDownload_Click()
 2 On Error GoTo handleErr
 3 Dim rs As ADODB.Recordset
 4 Dim mstream As ADODB.Stream
 5  
 6 Set rs = New ADODB.Recordset
 7 With rs
 8         .ActiveConnection = ConGamma
 9         .LockType = adLockOptimistic
10         .CursorLocation = adUseClient
11         .CursorType = adOpenKeyset
12         .Open "SELECT * from SR WHERE SRNUM='" & txtSRNUM.Text & "'"
13     End With
14 If (rs.RecordCount = 1) Then
15    If (rs("FileNameContent").ActualSize > 1) Then  ‘判断是否为空
16     '保存到文件
17     Set mstream = New ADODB.Stream
18     With mstream
19         .Mode = adModeReadWrite
20         .Type = adTypeBinary
21         .Open
22         .Write rs("FileNameContent")
23         .SaveToFile "C:\8D.PDF"    ‘‘这里注意了,如果当前目录下存在8D.PDF,会报一个文件写入失败的错误.
24     End With
25    
26     '关闭对象
27     rs.Close
28     mstream.Close
29    
30  
31 End If
32 End If
33  
34 Exit Sub
35 handleErr:
36   MsgBox ERR.Description
37 End Sub

View Code

具体就需要各位好好的去自已去调试了。

3、有关更多的技术分享,大家可以加入我们的技术群。

欢迎加入技术分享群:238916811

转载于:https://www.cnblogs.com/bribe/p/4420082.html

VB中上传下载文件到SQL数据库相关推荐

  1. ASP.NET中上传下载文件

    ASP.NET中上传下载文件 //检查上传文件不为空 if(File1.PostedFile!=null) { stringnam=File1.PostedFile.FileName; //取得文件名 ...

  2. xshell下载mysql到本地文件_在Xshell中上传下载文件到本地(linux中从多次ssh登录的dbserver里面的文件夹)-Go语言中文社区...

    在Xshell中上传下载文件到本地(linux中从多次ssh登录的dbserver里面的文件夹) 1 列出所有需要copy的sh文件 -bash-4.1$ ll /mysqllog/osw/*.sh ...

  3. java mina文件传输_如何将Apache MINA FTP服务器中上传的文件重定向到数据库?

    您所指的 onDownloadStart 示例似乎已过时 . 首先,使用的 FtpletEnum 类是 ftplet-api 的早期版本的一部分 . 较新版本不再拥有它 . 至少我无法找到它 . 尽管 ...

  4. jeecg3.5.2中上传下载文件的示例中的的一个bug

    2019独角兽企业重金招聘Python工程师标准>>> 应该是工程师忘记拼装查询条件了,你需要修改SystemControler.java的documentList方法,修改如下 / ...

  5. VB.net:使用Visual Studio 2010中的VB.net语言工具箱DataGridView调用SQL数据库Database的表格文件

    VB.net:使用Visual Studio 2010中的VB.net语言工具箱DataGridView调用SQL数据库Database的表格文件 目录 问题探究 图文教程 问题探究 使用Visual ...

  6. c#如何上传大文件到服务器,asp.net(C#)中上传大文件的几中常见应用方法

    asp.net(C#)中上传大文件的几中常见应用方法 更新时间:2008年11月25日 10:05:46   作者: 最近博客需要做一个文件上下载功能,我从网上找了点资料,整理了下希望对大家有帮助! ...

  7. java 上传文件及预览_SpringBoot上传下载文件及在线预览

    SpringBoot上传下载文件及在线预览 今天大概就说说如何使用SpringBoot进行上传和下载以及在线预览文件 本篇主要介绍上传下载的功能,对于界面就简单一点,大致如下: 一.老规矩还是先看看小 ...

  8. C# 使用SFTP的上传下载文件时如何使用代理

    最近遇到一个需求,使用SFTP上传下载文件,由于安全性,需要使用内部代理,在网上找了下,未找到相关代码.就自己整理了一份,实现原理基于 Tamir.SharpSsh.jsch;  部分代码仅供参考. ...

  9. 上传下载文件实例(vsftp服务器+nginx)

    上传下载文件实例(vsftp服务器+nginx) 页面(上传+下载) <form action="/pic/upload" enctype="multipart/f ...

最新文章

  1. Kostya Keygen#2分析
  2. 寒武纪创始人兼CEO陈天石博士的公开信
  3. les物流执行系统_物流规划工作如何开展?
  4. android通讯录项目_Flutter高仿微信项目开源-具即时通讯IM功能
  5. 8.12-14 df 、mkswap、swapon、swapoff、sync
  6. 函数强化练习2(py引入模块、包)
  7. android handler的机制和原理_Android消息机制的原理及源码解析
  8. 管理感悟:技术文档有用吗
  9. android多音字排序,再谈Contacts中姓氏多音字排序错误问题
  10. 计算机双硬盘安装需要跳线吗,双硬盘安装图文教程
  11. 淘宝获得淘宝商品类目 API
  12. 3.ZooKeeper客户端Curator的进阶使用「第三章 ZooKeeper Java客户端」「架构之路ZooKeeper理论和实战」
  13. 基于单片机的智能电风扇设计
  14. 十年前加入互联网改变世界,十年后加入顶级微信团队一起炸屎
  15. 当前时间距离某个时间的天数计算_Excel如何计算当前距离某一天的时间?,原来是这样的...
  16. html5使用websocket发送(PCM)音频数据到服务器,再转在wav文件
  17. 除了迅雷,目前还有什么下载软件好用?以下这3款你听过吗?
  18. JDK8与JDK9新特性学习
  19. 中国到美国寄国际快递怎么收费
  20. 菜鸟教程:HTML表单详解

热门文章

  1. 云边端一体化技术白皮书
  2. 动态规划——最长湍流子数组
  3. 接电路要用计算机测试嘛,ZY6502-PC型消防接口、水枪水压性能试验机
  4. C++上机报告 利用公式计算π=4(1-1/3+1/5-1/7+1/9-...)的近似值,直到括号中最后一项的绝对值小于0.000001为止。
  5. 用Matlab作出汽车驱动力图
  6. 【郭林专刊】自信还是危机感
  7. 管理员禁止运行此应用的解决办法
  8. Tita绩效宝:2022年,如何实施持续绩效管理
  9. 面经汇总--校招--金山办公
  10. 秉火429笔记之十五 DMA--直接存储区访问