Foxtable(狐表)用户栏目专家坐堂 → lxl版主对Foxtable读写二进制图片字段作专题介绍,大家学习!


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

主题:lxl版主对Foxtable读写二进制图片字段作专题介绍,大家学习!

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2010/9/10 22:24:00 [显示全部帖子]

用.net 的 SqlCommand  读写SQl Server的binary和image很简单。

 

但是用foxtable的SQLCommand 实现起来就麻烦一点了。

 

 

[此贴子已经被作者于2010-9-10 23:36:05编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2010/9/10 23:33:00 [显示全部帖子]

插入图片:

 

Dim fs As New IO.FileStream("D:\a.JPG" , IO.FileMode.Open , IO.FileAccess.Read)   '用文件流打开图片
Dim br As New IO.BinaryReader(fs)   '根据文件流,申明一个二进制阅读器
Dim ImageByte() As Byte = br.ReadBytes(fs.Length)   '阅读器读取文件流,并将独到的二进制放入数组ImageByte中,
Dim ImageString As String = BitConverter.ToString(imageByte).Replace("-", "")  ' SQLCommand 不能直接Insert 二进制,只能拼接SQL语句,所以这里把二进制变成字符                                                


Dim cmd As SQLCommand = new SQLCommand()
cmd.Co n necti o nName = "SqlServerDB"
cmd.CommandText = "Insert aaa values(0x" + ImageString + ")"  '这里的ImageString 就是前4条几句根据图片转换来的字符串
                                                              '拼接结果为 Insert aaa values(0xFFD8FFE000104A46494600010101006000600000FFDB004………………)
cmd.ExecuteNonQuery()

[此贴子已经被作者于2010-9-10 23:34:13编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2010/9/10 23:48:00 [显示全部帖子]

读取图片 

 新建一个窗口,添加一个PictureBox1 和 一个按钮

按钮单击代码如下:

 

Dim cmd As SQLCommand = new SQLCommand()
cmd.Co nnectio nName = "SqlServerDB"
cmd.CommandText = "select 照片列 from 员工表 where 姓名 = '张三'"

Dim imageByte() As Byte = cmd.ExecuteScalar()    '查询数据,并存入字节数组

Dim ms As New IO.MemoryStream(imageByte)       '将字节数组转换为二进制流
Dim image As Image = Image.FromStream(ms)      '将二进制流转换为图片
e.Form.Controls("PictureBox1").Image = image      '显示图片

[此贴子已经被作者于2010-9-10 23:52:19编辑过]

 回到顶部