以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于二进制列插入图片 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=107632) |
-- 作者:scofields -- 发布时间:2017/10/5 23:37:00 -- 关于二进制列插入图片 老师,这段代码是大红袍老师给的,我怎么测试都实现不了在表中直接插入图片,好着急啊。帮忙改动一下 Dim c As new camera Dim pic As WinForm.PictureBox = e.Form.Controls("PictureBox1") Dim dr As DataRow = Tables("T_信息表").Current.DataRow c.Capture() \'开始照相 If c.image IsNot Nothing Then \'照相成功 pic.Image = c.Image Dim imgStream As New IO.MemoryStream Dim b As New Bitmap(pic.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.C cmd.CommandText = "Insert Into T_信息表 (ICON) values (0x" + ImageString + ")" \'这里的ImageString 就是前4条几句根据图片转换来的字符串 cmd.ExecuteNonQuery() End If |
-- 作者:有点甜 -- 发布时间:2017/10/6 10:55:00 -- 参考这里测试
http://www.foxtable.com/webhelp/scr/2950.htm
http://www.foxtable.com/webhelp/scr/2954.htm
|
-- 作者:scofields -- 发布时间:2017/10/6 21:49:00 -- 反复测试,还是无法实现现拍的照片直接插入进去,反而是将图片插入到最后一行去了,也不知道是什么原因造成的。 |
-- 作者:scofields -- 发布时间:2017/10/6 22:05:00 -- 晕死,我把照片先保存到本地,然后再去插入,这也一步到位,就这么简单的事,我都没有逆转过来,还在研究大红袍老师写的高深代码。话不多说,我直接提供拍照直插照片的代码。 Dim c As new camera Dim pic As WinForm.PictureBox = e.Form.Controls("PictureBox1") Dim dr As DataRow = Tables("T_信息表").Current.DataRow c.Capture() \'开始照相 If c.image IsNot Nothing Then \'如果拍照成功 c.Save("c:\\data\\abc.jpg") ‘然后将先保存到c盘data文件夹下,并把招盘取名为abc文件名 dr.SQLInsertFile("ICON","c:\\data\\abc.jpg") \'再然后插入刚刚拍照的图像 pic.Image = GetImage("c:\\data\\abc.jpg") End If OK啦。 听蓝老师的话,先研究示例,示例隐藏着无限的智慧。 |
-- 作者:有点甜 -- 发布时间:2017/10/7 10:21:00 -- 以下是引用scofields在2017/10/6 21:49:00的发言:
反复测试,还是无法实现现拍的照片直接插入进去,反而是将图片插入到最后一行去了,也不知道是什么原因造成的。
1楼的代码 Insert Into 是插入一行新的行。如果你需要插入图片到一行已经存在的行,你应该写 update 表名 set ........
如
cmd.CommandText = "update T_信息表 set ICON = 0x" + ImageString + " where _Identify = " & dr("_Identify") |