Foxtable(狐表)用户栏目专家坐堂 → 为什么不能显示二进制图片?


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

主题:为什么不能显示二进制图片?

帅哥,在线噢!
hongye
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:482 积分:3231 威望:0 精华:0 注册:2011/3/15 12:49:00
为什么不能显示二进制图片?  发帖心情 Post By:2020/3/1 0:47:00 [只看该作者]

AfterLoad事件如下:
Dim cmd As New SQLCommand
Dim ds As DataTable
cmd.C
cmd.CommandText = "SELECT * Fr om {核价系统}"
ds = cmd.ExecuteReader(True)
Dim drt As DataTable = DataTables("核价系统_Table1")
Dim tbl As Table = Tables("核价系统_Table1")
tbl.DataSource = ds

窗口”核价系统“表“Table1” CurrentChanged 事件如下:
Dim pbx As WinForm.PictureBox = Forms("核价系统").Controls("PictureBox1")
If Tables("核价系统_Table1").Current Is Nothing Then
MessageBox.Show( "1")
    pbx.Image = Nothing
Else
MessageBox.Show( "2")
    pbx.Image = Tables("核价系统_Table1").Current.DataRow.SQlLoadImage("款式图片") '从后台提取照片并显示
End If


图片点击可在新窗口打开查看此主题相关图片如下:01.jpg
图片点击可在新窗口打开查看


为什么不能显示二进制图片呢
[此贴子已经被作者于2020/3/1 0:50:41编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(hongye)为什么不能显示二进制图片?  发帖心情 Post By:2020/3/1 0:53:00 [只看该作者]

不用窗体表看看
直接定义为table1
Dim tbl As Table = Forms("核价系统").Controls("table1”)

[此贴子已经被作者于2020/3/1 0:54:46编辑过]

 回到顶部
帅哥,在线噢!
hongye
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:482 积分:3231 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2020/3/1 14:21:00 [只看该作者]

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.2.28.8
错误所在事件:核价系统_Table1,CurrentChanged
详细错误信息:
无法将类型为“Foxtable.WinForm.Table”的对象强制转换为类型“Foxtable.Table”。

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2020/3/1 17:42:00 [只看该作者]


加一个隐藏的Label标签,内容为空,假定标签名为Label1
Afterload:
Dim cmd As New SQLCommand
Dim ds As DataTable
cmd.C
cmd.CommandText = "SELECT * Fr om {核价系统}"
ds = cmd.ExecuteReader(True)
Dim drt As DataTable = DataTables("核价系统_Table1")
Dim tbl As Table = Tables("核价系统_Table1")
tbl.DataSource = ds
e.Form.Controls("lable1").Text= “Ok”
Tables("核价系统_Table1").RaiseCurrentChanged 

 CurrentChanged :
if e.Form.Controls("lable1").Text <> “Ok” then  
   Return
end if
Dim pbx As WinForm.PictureBox = Forms("核价系统").Controls("PictureBox1")
If Tables("核价系统_Table1").Current Is Nothing Then
MessageBox.Show( "1")
    pbx.Image = Nothing
Else
MessageBox.Show( "2")
    pbx.Image = Tables("核价系统_Table1").Current.DataRow.SQlLoadImage("款式图片") '从后台提取照片并显示
End If



 回到顶部
帅哥,在线噢!
hongye
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:482 积分:3231 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2020/3/1 20:05:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:01.jpg
图片点击可在新窗口打开查看

参照狐狸爸爸的代码,还是出现错误哦



 回到顶部
帅哥,在线噢!
hongye
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:482 积分:3231 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2020/3/1 20:08:00 [只看该作者]

AfterLoad

Dim cmd As New SQLCommand

Dim ds As DataTable

cmd.C

cmd.CommandText = "SELECT * Fr om {订单核价系统}"

ds = cmd.ExecuteReader(True)

Dim drt As DataTable = DataTables("核价系统主表_Table1")

Dim tbl As Table = Tables("核价系统主表_Table1")

tbl.DataSource = ds

e.Form.Controls("lable1").Text= "Ok"

Tables("核价系统主表_Table1").RaiseCurrentChanged 

tbl.SetColVisibleWidth("客户|95|客户担当|70|品名|160|款号|170|样衣款号|160|核价金额|70|技术担当|70|")

tbl.Cols("技术担当").TextAlign = TextAlignEnum.Right

tbl.Cols("品名").TextAlign = TextAlignEnum.Right

tbl.Cols("客户担当").TextAlign = TextAlignEnum.Right

tbl.Cols("款号").TextAlign = TextAlignEnum.Center

tbl.Cols("样衣款号").TextAlign = TextAlignEnum.Center

tbl.SetHeaderCellForeColor("核价金额",Color.Blue)


CurrentChanged

If e.Form.Controls("lable1").Text <> "Ok" Then  

   Return

End If

Dim pbx As WinForm.PictureBox = Forms("核价系统主表").Controls("PictureBox1")

If Tables("核价系统主表_Table1").Current Is Nothing Then

    pbx.Image = Nothing

Else

    pbx.Image = Tables("核价系统主表_Table1").Current.DataRow.SQlLoadImage("款式图片") '从后台提取照片并显示

End If


还是出错,这是为什么呢

[此贴子已经被作者于2020/3/1 20:41:49编辑过]

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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/1 20:51:00 [只看该作者]

好像只是主表可以,临时表不支持的,试试直接查询,如

 CurrentChanged

Dim pbx As WinForm.PictureBox = Forms("核价系统主表").Controls("PictureBox1")

If e.Table.Current Is Nothing Then

    pbx.Image = Nothing

Else

    Dim cmd As New SQLCommand

    Dim ds As DataTable

    cmd.ConnectionName = "xxx"

    cmd.CommandText = "SELECT 款式图片 Fr om {核价系统} where [_Identify] = " & e.Table.Current("_Identify")

    ds = cmd.ExecuteReader()

    If ds.datarows.count > 0 Then

        Dim imageByte() As Byte = ds.datarows(0)("图片列")

        Dim ms As New system.IO.MemoryStream(imageByte)       '将字节数组转换为二进制流

        Dim image As Image = Image.FromStream(ms)

        pbx.Image = image

    else

        pbx.Image = Nothing

    End If

End If


[此贴子已经被作者于2020/3/1 22:50:36编辑过]

 回到顶部
帅哥,在线噢!
hongye
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:482 积分:3231 威望:0 精华:0 注册:2011/3/15 12:49:00
  发帖心情 Post By:2020/3/1 20:59:00 [只看该作者]

End If

    p

End If


这个p是什么?


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


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/1 21:03:00 [只看该作者]

笔误,去掉即可

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


加好友 发短信
等级:五尾狐 帖子:1133 积分:8227 威望:0 精华:0 注册:2013/11/3 19:00:00
  发帖心情 Post By:2020/3/1 22:42:00 [只看该作者]

mark 显示二进制图片

 回到顶部