上一篇中我已经说了下如何操作ACCESS数据库,下面来说说存取图片,声音之类的问题。

由于图片,声音不能直接存储,这里就要用到数据流方式了。对于.NET中的一些术语概念我仍然很迷糊,在学习中。主要我不是专业的,

只是开始学了点VB6代码,然后就用VB.NET了,所以目前只是会写点代码,却不知道原理,很惭愧。

哎哟,走题了,赶紧回来,不好意思!

好吧,我们先看看图片和声音的存储和读取。看下代码。

’这段代码是插入图片和声音的代码 ’第一个就是图片了,path当然是图片的地址了 Picturebyte = My.Computer.FileSystem.ReadAllBytes(PicturePath) ’下面这个就是声音咯,voicepath自然还是声音地址了 Voicebyte = My.Computer.FileSystem.ReadAllBytes(VoicePath) ‘这里就开始照旧写SQL,区别以前的地方就是这里是用COMMAND的一个参数来赋值 str = New System.Text.StringBuilder str.Append(" INSERT INTO WORDINFO ([PICTURE],[ENGLISHNAME],[CHINESENAME],[VOICE],[Class]) ") str.Append(" VALUES(?,?,?,?,?)") cmd = New OleDb.OleDbCommand(str.ToString, DBConnection) cmd.Parameters.Add(New OleDb.OleDbParameter) cmd.Parameters(0).Value = Picturebyte cmd.Parameters.Add(New OleDb.OleDbParameter) cmd.Parameters(1).Value = EnglishName cmd.Parameters.Add(New OleDb.OleDbParameter) cmd.Parameters(2).Value = ChineseName cmd.Parameters.Add(New OleDb.OleDbParameter) cmd.Parameters(3).Value = Voicebyte cmd.Parameters.Add(New OleDb.OleDbParameter) cmd.Parameters(4).Value = Classstring cmd.ExecuteNonQuery()’sql写完了就开始执行 DBConnection.Close() MsgBox("Save OK", MsgBoxStyle.Information)

看看上面的代码是不是很简单了?就这样就可以存储进数据库咯,我这里还是用ACCESS来演示的,sql之类的还要简单。

行了,不说别的了,继续实行功能吧,其他的问题我放在最后交代。

下面我们来看看如何读取,看代码。(怎么有点像武侠上看刀一个味?呵)

Dim Englishname As String Dim Picturebyte() As Byte Dim Voicebyte() As Byte Dim stream As New ADODB.Stream Englishname = Trim(SearchTBox.Text) If Englishname <> "" Then DBConnection.ConnectionString = DB_CnStr() DBConnection.Open() '开始查询 Dim sql As New System.Text.StringBuilder sql.Append(" SELECT * FROM WORDINFO") sql.Append(" WHERE ENGLISHNAME='").Append(Englishname).Append("'") Dim cmd As New OleDb.OleDbCommand(sql.ToString, DBConnection) Dim RS As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(cmd) Dim DT As New DataTable RS.Fill(DT) DBConnection.Close() '有查到则显示出来 If DT.Rows.Count = 0 Then MsgBox("No Record ", MsgBoxStyle.Critical, "Error") Exit Sub Else '界面初始化 Modifybtn.Enabled = True Deletebtn.Enabled = True 'EnglishNameTBox.Enabled = True ChineseNameTBox.Enabled = True ClassTbox.Enabled = True InsertPicLinkLab.Enabled = True InsertVoiceLinkLab.Enabled = True TestLinkLab.Enabled = True RecordLinkLab.Enabled = True Printbtn.Enabled = True SearchTBox.Text = "" ’上面你可以不要看了,关键来咯,下面是开始显示图片 Picturebyte = DT.Rows(0).Item(1) PictureBox1.Image = Bitmap.FromStream(New IO.MemoryStream(Picturebyte, True), True) EnglishNameTBox.Text = DT.Rows(0).Item(2).ToString ChineseNameTBox.Text = DT.Rows(0).Item(3).ToString ClassTbox.Text = DT.Rows(0).Item(5).ToString ‘这里是取出声音文件了,需要交代的是,我研究了很久(套用行家台词),没找到好的方法, ‘好像只能先把声音文件暂存出来,然后你去播放之类的动作。不知道能不能直接播放流文件, ’或者有其他的方法,这个是刚刚想到的,呵呵,以后去尝试下。 With stream .Mode = ADODB.ConnectModeEnum.adModeReadWrite .Type = ADODB.StreamTypeEnum.adTypeBinary .Open() .Write(DT.Rows(0).Item(4)) .SaveToFile("c:/test.wav ", ADODB.SaveOptionsEnum.adSaveCreateOverWrite) End With VoiceTBox.Text = "c:/test.wav " End If Else MsgBox("English Name is empty", MsgBoxStyle.Critical, "Error") End If

OK,上面一些话呢就是说了下存储和读取了,其他的更新之类的就不要说了吧?我想大家肯定比我还聪明。

不知道这样用代码来说,能不能帮助到大家清楚这些操作方法呢,希望大家能和我交流,我的空间里有联系方式。

最后呢,我还要啰嗦下,其实图片和声音之类的文件太大,或者你的程序中用到很多的话,还是不要直接存储到数据库里,自己单独用

一个文件夹放置他们,然后呢你就把这些文件的地址保存到数据库里,这样来说就会很合理化了,不会影响到数据库和程序的性能。

我这里只是做一个介绍,大的项目就要有性能方面的考虑了。好了,就说这么多,谢谢!

vb.net操作数据库之ACCESS(2)相关推荐

  1. vb.net操作数据库之ACCESS(一)

    转载自:http://blog.csdn.net/machong8183/article/details/5488191 一直想写下数据库操作方面的,只是没什么时间(好像是借口,应该是懒或者没心情吧, ...

  2. vb.net操作数据库之ACCESS(1)

    一直想写下数据库操作方面的,只是没什么时间(好像是借口,应该是懒或者没心情吧,呵呵).最近发现CSDN上 还是每天有人要问这些内容,我有的时候就懒的回答,呵呵,主要不断的去找代码给他们累啊.所以还是听 ...

  3. vb.net操作数据库之ACCESS(3)

    这一篇我再说说水晶报表的情况.ACCESS中对应水晶报表方面,大家可能会遇到的最多的问题应该就是打开报表后 会出现需要登录的问题. 这个是为什么呢?明明我没有设置密码,怎么会有要输入密码呢?如果你够沉 ...

  4. vb adodb mysql_VB6实现连接Access数据库的ADODB代码实现方法

    本文实例讲述了使用ADODB.Connection连接access数据库的方法,驱动类型版本为:Microsoft.Jet.OLEDB.4.0.在VB的数据库操作中,连接数据库是第一步,也是最基本的, ...

  5. 学习记录:VB.NET.操作ACCESS数据库

    从98年到现在,VB6使用了20多年,真的舍不得扔掉,但是随着新计算机预装操作系统的版本越来越高,做好的安装包在安装时遇到的问题越来越多,无奈之下只能转向使用VB.NET了.安装了VS2005来学习, ...

  6. VB和VB.net环境下链接Access、SQL数据库的方法及技巧(Access篇)

    ACCESS数据库: VB环境下 方法一:用代码链接 步骤一: 在 工程引用Microsoft ActiveX Data Objects 2.8 Library '2.5 2.6 2.7 2.8 随你 ...

  7. 将DataSet中的操作更新到Access数据库

    代码如下: <%@import Namespace =Namespace=system.data%> <%@import Namespace =Namespace=system.da ...

  8. Sql Server 和 Access 操作数据库结构Sql语句

    下面是Sql Server 和 Access 操作数据库结构的常用Sql,希望对你有所帮助. 新建表: create table [表名] ( [自动编号字段] int IDENTITY (1,1) ...

  9. VS2010 数据库操作(基于Access 2013)

    这几天老师让我做一个实现从VS2010中向Access数据库读写数据的程序.我想起当初学习VS的时候做过一个类似的密码管理器,就是利用数据库的一些知识.当时也是突发奇想,找了各种资料,总算有了个结果, ...

最新文章

  1. 基于SSM实现旅游酒店预定管理系统平台
  2. 数据结构-双向链表的实现
  3. 当前目录下所有代码中查找
  4. 5.6 matlab曲线拟合案例(股票预测问题、算法的参数优化问题)
  5. 品牌管理-统一异常处理
  6. 大剑无锋之你所知道的列式数据库有哪些?列式数据库的好处在哪?【面试推荐】
  7. 【转】Linux写时拷贝技术(copy-on-write)
  8. 在Window上使用Jenkins自动发布Java工件
  9. python如何装sklearn_python安装sklearn
  10. 大学大专mysql考试试卷_MySQL数据库基础应用-中国大学mooc-试题题目及答案
  11. 课节5:图神经网络算法(二):领居聚合
  12. [转]缓存穿透与缓存雪崩
  13. mysql上线脚本规范_MySQL 的 21 个规范、优化最佳实践!
  14. python生成三对角矩阵_使用Python的三对角矩阵
  15. jQuery暴打灰太狼小游戏
  16. ansys转子动力学分析
  17. 如何使用计算机来线性拟合,Excel2019使用教程:绘制线性回归图
  18. macos android大小写,Git(MacOS)区分大小写覆盖问题
  19. 创建一个xposed模块Demo
  20. 乌镇、世博、上海游之西、东栅

热门文章

  1. 2021-2027全球与中国成像色度计市场现状及未来发展趋势
  2. [86题更新完毕] 牛客Python专项题
  3. Jetty篇教程 之Jetty 嵌入式服务器
  4. 【多元统计分析】均值向量和协方差阵的检验——spss上机实验
  5. Unity基础篇:Serializable总结与深入研究。
  6. CMU 11-785 L16 Connectionist Temporal Classification
  7. MOG插件(葡萄牙语,略作翻译)
  8. 蒸妙熏蒸,疏通身体的“堵”
  9. NXP JN5169使用EEPROM/片上FLASH/随机数/内部NVM
  10. VUE项目练习大全(附github源码)