VB.NET 操作 ACCESS OLE 字段内容

access

数据库结构:
--------------------------------------
test.mdb [放在BIN目录下]
表 test(id 自动编号, img OLE)
----------------------------------------------

代码:
----------------------------------------------------
使用 一个 openfiledialog ,两个 picturebox

----------------------------------------------------------------------
Imports System.IO
Public Class Form1
Inherits System.Windows.Forms.Form

Dim cnn As Data.OleDb.OleDbConnection

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Me.Dispose(True)
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If OpenFileDialog1.ShowDialog = DialogResult.OK Then
PictureBox1.Image = Image.FromFile(OpenFileDialog1.FileName)
End If
End Sub

Private Sub DBInit()
Try
cnn = New Data.OleDb.OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;Data Source=" & Application.StartupPath & "\test.mdb")
cnn.Open()
Catch exp As OleDb.OleDbException
MsgBox(exp.Message)
End
End Try
End Sub

Private Sub DBRelease()
cnn.Close()
cnn = Nothing
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If PictureBox1.Image Is Nothing Then
MsgBox("请先选择图片", MsgBoxStyle.Exclamation)
Exit Sub
End If
Dim fs As FileStream = New FileStream(OpenFileDialog1.FileName, FileMode.Open, FileAccess.Read)
Dim bt(fs.Length) As Byte
fs.Read(bt, 0, fs.Length)
fs.Close()
fs = Nothing
Dim oleCmd As OleDb.OleDbCommand = New OleDb.OleDbCommand
DBInit()
oleCmd.Connection = cnn
oleCmd.CommandType = CommandType.Text
oleCmd.CommandText = "INSERT INTO test (img) VALUES (@img)"
oleCmd.Parameters.Add("@img", OleDb.OleDbType.Binary).Value = bt
oleCmd.ExecuteNonQuery()
oleCmd = Nothing
DBRelease()
MsgBox("图片插入成功")
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim oleCmd As OleDb.OleDbCommand = New OleDb.OleDbCommand("SELECT img FROM test WHERE id=1")
oleCmd.CommandType = CommandType.Text
DBInit()
oleCmd.Connection = cnn
Dim dr As OleDb.OleDbDataReader = oleCmd.ExecuteReader(CommandBehavior.SingleRow)
If dr.Read Then
If Not IsDBNull(dr.Item(0)) Then
Dim bt() As Byte = dr.Item(0)
Dim ms As MemoryStream = New MemoryStream(bt)
PictureBox2.Image = Image.FromStream(ms)
Else
MsgBox("无图片")
End If
Else
MsgBox("无数据")
End If
dr.Close()
dr = Nothing
oleCmd = Nothing
DBRelease()
End Sub
End Class

时间: 2024-12-30 00:13:08

VB.NET 操作 ACCESS OLE 字段内容的相关文章

求vb.net 操作ACCESS问题在线等

问题描述 DimdtAsNewDataTableDimconnStrAsString="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=f:megacities.mdb"DimsqlStrAsString="Select*fromcities"DimdataApAsNewOleDb.OleDbDataAdapter(sqlStr,connStr)dataAp.Fill(dt)dataAp.Dispose()'如果数据表中只有两

用vb.net操作access存储过程(2)

access|存储过程 在第一部分,我们已经知道了如何利用ado.net和vb.net建立access中的存储过程,这篇我们需要了解如何利用这些已经建立好的存储过程.我们将程序做成公共类DBTier,这样就可以在其他程序中调用了.首先,几个命名空间必不可少.Imports SystemImports System.DataImports System.Data.OleDb数据库链接字符串 Shared connectionString As String = _    "PROVIDER=Mic

用VB.NET不能更新ACCESS的字段,请帮忙诊断一下,谢谢。

问题描述 本人用以下代码能够顺利的从DataGridView中查询到ACCESS的数据(其中的"时间"字段经过处理)Schedule_Ada.SelectCommand=NewOleDbCommand("SELECT流水号,日期,(Hour(时间)&':'&Minute(时间))as时间fromSchedule",Schedule_Cnn)Schedule_Ada.Fill(MyDS,"Schedule")但是我想把改动后的结果更

c++-MFC 用ODBC操作access时能修改字段的必填项吗?

问题描述 MFC 用ODBC操作access时能修改字段的必填项吗? 用ODBC更新字段时,如果有字段设置为必填项,但内容为空时会抛出异常. 由于mdb在设计时将很多字段都设置成了必填,但实际填写时都没内容.在ODBC中有方法可以取消access字段的必填项吗? 解决方案 可以,用ALTER TABLE语句可以修改access数据库的表结构,包括添加删除字段,取消字段的非空属性,修改字段类型等等.http://wenku.baidu.com/link?url=wwsxCJvpcIYbaUQPgs

blobstore-用程序对ACCESS的BLOB字段内容进行读写

问题描述 用程序对ACCESS的BLOB字段内容进行读写 这两天好像论坛不能发贴了.只能在这里求助! 用程序对ACCESS的BLOB字段内容进行读写,网上都是以图形文件为例进行的操作.我的要求是BLOB中的内容是任意二进制格式的数据,如rar,chm,xml,dwg,doc,exe....等这类数据. 请大家相助,最好有实例.Delphi7+Access2000 解决方案 http://www.yesky.com/290/130290.shtml

直接通过ADO操作Access数据库

我在"直接通过ODBC读.写Excel表格文件"和"直接通过DAO读.写Access文件",先后给大家介绍了ODBC和DAO两种数据库访问技术的基本使用方法,这次要给大家介绍的是ADO数据库访问技术的使用方法.ADO(Active Data Object,活动数据对象)实际上是一种基于COM(组件对象模型)的自动化接口(IDispatch)技术,并以OLE DB(对象连接和镶入的数据库)为基础,经过OLE DB精心包装后的数据库访问技术,利用它可以快速的创建数据库应

ASP操作Access及ADOX类的使用

一般操作Access数据库,有Alter语句,和MsSQL2k的基本语法差别不是太打,例如,在某表创建新列语句: Dim sqlstr sqlstr="alter table l_info add column info_file varchar(200)default NULL" conn.execute(sqlstr) 以上语句在l_info创建列info_file,为文本类型,长度是200,如果没有其他的设置,这时候,默认的: 必填字段:否 允许空字符创:否 这个空字符串一般可以

ado-VC++操作Access数据库的查询语句出错,求助

问题描述 VC++操作Access数据库的查询语句出错,求助 刚学着用VC++操作Acess2003数据库,在对话框里添加一个列表控件,然后把存到数据库里的内容在列表控件中显示,用编辑框向数据库添加内容,基本是照着书上写的做,除了名字改了其它程序都没动.现在向数据库添加内容没有问题,可以正常的存进去.但是想用查询语句SELECT * FROM CKdataInfo把数据库里的内容显示出来就出错了,具体程序如下 void Cdb003Dlg::FreshList() { try { //查询数据库

怎样利用vb.net向ACCESS库中存储图片

问题描述 怎样利用vb.net向ACCESS库中存储图片 解决方案 解决方案二:http://topic.csdn.net/t/20060130/11/4537305.html解决方案三:有没有vb.net的实例啊?解决方案四:DimC_FilestreamAsSystem.IO.FileStreamC_Filestream=NewSystem.IO.FileStream(strPicPath,IO.FileMode.Open,IO.FileAccess.Read)Dimbt(C_Filestr