Foxtable(狐表)用户栏目专家坐堂 → 求助,拍照直接插入数据库二进制列


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

主题:求助,拍照直接插入数据库二进制列

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


加好友 发短信
等级:六尾狐 帖子:1207 积分:7224 威望:0 精华:0 注册:2013/3/4 18:02:00
求助,拍照直接插入数据库二进制列  发帖心情 Post By:2016/5/13 21:15:00 [只看该作者]

 Dim c As new camera
Dim pic As WinForm.PictureBox = e.Form.Controls("PictureBox1")
Dim dr As DataRow = Tables("职员信息管理_职员信息表").Current.DataRow
c.Capture() '开始照相
If c.image IsNot Nothing Then '照相成功
    pic.Image = c.Image
    dr.SQLInsertFile("photo",pic.ImageFile)
End If


红色的出错了,文件名应该写什么?帮助里也没有

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


加好友 发短信
等级:六尾狐 帖子:1207 积分:7224 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2016/5/14 0:02:00 [只看该作者]

图片点击可在新窗口打开查看 难道一定要存储到本地,然后再调取来存储进去吗?

 回到顶部
美女呀,离线,留言给我吧!
qianqian1530
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:746 积分:5567 威望:0 精华:0 注册:2013/12/4 8:56:00
  发帖心情 Post By:2016/5/14 9:32:00 [只看该作者]

  这是肯定低.

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/5/14 10:15:00 [只看该作者]

是的,参数只接受文件路径

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


加好友 发短信
等级:六尾狐 帖子:1207 积分:7224 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2016/5/14 13:40:00 [只看该作者]

我也是醉了,这个本来可以一次性搞完的

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/5/14 14:39:00 [只看该作者]

自己写代码操作
Dim imgStream As New IO.MemoryStream
Dim PictureBox1 As WinForm.PictureBox = e.Form.Controls("PictureBox1")
Dim b As New Bitmap(PictureBox1.Image)
b.Save(imgStream, System.Drawing.Imaging.ImageFormat.Jpeg)
Dim data As Byte() = imgStream.GetBuffer
imgStream.Dispose()
Dim conn As New System.Data.SqlClient.SqlConn ection("server=localhost;database=test;Integrated Security=true;")
conn.Open()
Dim sqlcomm As New System.Data.SqlClient.SqlCommand
sqlcomm.Connection = conn
sqlcomm.CommandText = "UPD ATE [DDDDD] SET [第八列] = @第八列 WHERE [第一列] = @第一列 "
sqlcomm.Parameters.Add("@第八列", System.Data.SqlDbType.Image).Value = data
sqlcomm.Parameters.Add("@第一列", System.Data.SqlDbType.NVarChar).Value = "66"
sqlcomm.ExecuteNonQuery()
conn.Close()

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/5/15 23:06:00 [只看该作者]

还不如用代码插入 


 


Dim imgStream As New IO.MemoryStream
Dim PictureBox1 As WinForm.PictureBox = e.Form.Controls("PictureBox1")
Dim b As New Bitmap(PictureBox1.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 = "SqlServerDB"
cmd.CommandText = "Insert into 表名 (列名) values (0x" + ImageString + ")"  '这里的ImageString 就是前4条几句根据图片转换来的字符串

cmd.ExecuteNonQuery()

[此贴子已经被作者于2016/5/15 23:07:56编辑过]

 回到顶部