首页 > 编程 > .NET > 正文

Vb.net向sql server数据库中保存图片(二)

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

4、 声明类级的变量。找到设计期产生的代码部分,把下面的语句加到变量声明后面。什么?不知道变量声明在哪儿?不会吧!

private fs as filestream

private ds as dataset

private conn as new sqlconnection("server=localhost;database=northwind;integrated security=true;")

private currentpos as integer = 9



5、 开始写代码了。首先是form_load

private sub form1_load(byval sender as system.object, byval e as system.eventargs) handles mybase.load



btnopen.enabled = true

btnsave.enabled = true

btnback.enabled = false

btnforward.enabled = false

end sub

6、 open按钮的点击事件代码:

private sub openbtn_click(byval sender as system.object, byval e as system.eventargs) handles btnopen.click

dim opendlg as new openfiledialog

opendlg.title = "select a picture file"

opendlg.filter = "(*.bmp)|*bmp|(*.jpg)|*.jpg"

opendlg.showdialog()

lblpath.text = opendlg.filename.tostring()

fs = new filestream(opendlg.filename.tostring(), filemode.open, fileaccess.read)

picturebox1.image = image.fromfile(opendlg.filename.tostring())

end sub

7、 save按钮的点击事件代码

private sub savebtn_click(byval sender as system.object, byval e as system.eventargs) handles btnsave.click

dim sqlcomm as new sqlcommand

sqlcomm.commandtext = "insert into employees (lastname,firstname,photo) values (@lastname,@firstname,@photo)"

sqlcomm.connection = conn

dim data(fs.length) as byte

fs.read(data, 0, int(fs.length))

dim prm1 as new sqlparameter("@lastname", txtln.text)

dim prm2 as new sqlparameter("@firstname", txtfn.text)

dim prm3 as new sqlparameter("@photo", sqldbtype.varbinary, int(fs.length), parameterdirection.input, false, 0, 0, "", datarowversion.current, data)

sqlcomm.parameters.add(prm1)

sqlcomm.parameters.add(prm2)

sqlcomm.parameters.add(prm3)

try

conn.open()

sqlcomm.executenonquery() '执行插入语句

conn.close()

fs.close()

catch ex as exception

msgbox(ex.message)

end try

end sub

8、 选择view状态的事件代码

private sub checkbox1_checkedchanged(byval sender as system.object, byval e as system.eventargs) handles checkbox1.checkedchanged

if checkbox1.checked = true then

btnopen.enabled = false

btnsave.enabled = false

btnback.enabled = true

btnforward.enabled = true

currentpos = 9

dim sqlcomm as new sqlcommand

sqlcomm.commandtext = "select employeeid, photo from employees order by employeeid"

sqlcomm.connection = conn

dim da as new sqldataadapter(sqlcomm)

try

conn.open()

ds = new dataset

da.fill(ds, "employees")

conn.close()

catch sqlex as sqlexception

msgbox(sqlex.message)

end try



dim data() as byte = ds.tables("employees").rows(9)("photo")

dim stmphoto as new memorystream(data)

picturebox1.image = image.fromstream(stmphoto)

else

btnopen.enabled = true

btnsave.enabled = true

btnback.enabled = false

btnforward.enabled = false

end if

end sub

9、 “>>”按钮点击事件代码



private sub forward_click(byval sender as system.object, byval e as system.eventargs) handles btnforward.click

if currentpos = ds.tables("employees").rows.count - 1 then

return

else

currentpos += 1

dim data() as byte

data = ds.tables("employees").rows(currentpos)("photo")

dim stmphoto as new memorystream(data)

picturebox1.image = image.fromstream(stmphoto)

end if

end sub

10、 “<<”按钮点击事件代码

private sub back_click(byval sender as system.object, byval e as system.eventargs) handles btnback.click

if currentpos = 9 then

return

else

currentpos -= 1

end if



dim data() as byte

data = ds.tables("employees").rows(currentpos)("photo")

dim stmphoto as new memorystream(data)

picturebox1.image = image.fromstream(stmphoto)

end sub

11、 好了,可以运行看看了。




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