首页 > 编程 > .NET > 正文

VB.NET 操作 ACCESS OLE 字段内容

2024-07-10 13:05:04
字体:
来源:转载
供稿:网友

数据库结构:
--------------------------------------
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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表