Foxtable(狐表)用户栏目专家坐堂 → SQLInsertFile问题


  共有2060人关注过本帖树形打印复制链接

主题:SQLInsertFile问题

帅哥哟,离线,有人找我吗?
goldenfont
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:389 积分:3886 威望:0 精华:0 注册:2016/4/25 17:36:00
SQLInsertFile问题  发帖心情 Post By:2017/12/4 14:26:00 [只看该作者]

编辑一个数据行,有一列是二进制列,新增或者修改的时候,此字段用SQLInsertFile的办法会跳出“未将对象引用到对象的实例”错误

Dim dr As DataRow = Tables("商品信息").Current.DataRow
dr.Save
'保存图片
Dim pic1 As WinForm.PictureBox = e.Form.Controls("PictureBox1")
dr.SQLInsertFile("示意图1",pic1.ImageFile)


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/4 15:00:00 [只看该作者]

必须先保存,才能用sqlinsertfile插入的,如

 

pic1.image.save(projectpath & "temp.jpg")

dr.SQLInsertFile("示意图1", projectpath & "temp.jpg")

 


 回到顶部
帅哥哟,离线,有人找我吗?
goldenfont
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:389 积分:3886 威望:0 精华:0 注册:2016/4/25 17:36:00
  发帖心情 Post By:2017/12/4 15:54:00 [只看该作者]

搞定了,谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
goldenfont
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:389 积分:3886 威望:0 精华:0 注册:2016/4/25 17:36:00
  发帖心情 Post By:2017/12/4 17:36:00 [只看该作者]

老师,出了个新问题,保存好以后,总是会出现“所选的图片被另一个进程占用。。。。。。”的错误提示,但是把错误框点掉后也是能正常显示和使用的,这是啥意思?难道是每次保存成一个固定的临时图片文件引起的?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/4 17:56:00 [只看该作者]

这样写代码吧

 


Dim imgStream As New IO.MemoryStream
Dim b As New Bitmap(pic1.Image)
b.Save(imgStream, System.Drawing.Imaging.ImageFormat.Jpeg)
Dim imageByte As Byte() = imgStream.GetBuffer
imgStream.Dispose()
Dim ImageString As String = BitConverter.ToString(imageByte).Replace("-", "")  ' SQLCommand 不能直接Insert 二进制,只能拼接SQL语句,所以这里把二进制变成字符
Dim cmd As SQLCommand = new SQLCommand()
cmd.ConnectionName = "数据源名"
cmd.CommandText = "update " & dr.datatable.name & " set 示意图1 = 0x" + ImageString + " where _Identify = " & dr("_Identify")
cmd.ExecuteNonQuery()


 回到顶部