用户
 找回密码
 立即注册

1

主题

5

帖子

171

积分

注册会员

Rank: 2

积分
171
发表于 2020-11-9 17:34:36
1、查询窗体
//查询
using (SqlConnection conn = new SqlConnection())
            {
                DataTable table = Module1.GetData("Select Photoreview from photo where ArID='" + ArID + "' );
                listView1.Rows.Clear();
                if (table.Rows.Count > 0){
                    listView1.DataSource = table;
                    listView1.DataBind();
                }
                else if (table.Rows.Count == 0){
                    Toast("没有记录!");
                }
            }

//重新绑定
private void listView1_RowBind(object sender, ListViewTemplateBindEventArgs e)
        {
            ((电子图片模板)e.Row.Control).image1.ResourceData = imgBytes;
        }

2、电子图片模板窗体
电子图片模板中image的modifier设置public,image的ResourceMode设置Data,image的DisplayMember设置Photoreview


请问下,还需要操作什么?才能将数据库中字段Photoreview,类型为二进制流的值转换为成图片在listView1中显示。

使用道具 举报 回复
发表于 2020-11-9 21:27:33
imgPro.ResourceMode = ResourceMode.Data
imgPro.ResourceID = ""
imgPro.DisplayMember = "image"
imgPro.ResourceData = bytes1

这样
使用道具 举报 回复 支持 反对
发表于 2020-11-11 15:23:31
private void panel1_Press(object sender, EventArgs e)
            {
          //Photo 是sql的二进制字段
            DataTable table = Module1.GetData("Select Photo from photo where pID='" + ArID + "'");
            byte[] imgbyte = (byte[])table.Rows[0][0];
            image1.ResourceMode = ResourceMode.Data;
            image1.ResourceID = "";
            image1.DisplayMember = "Photo";
            image1.ResourceData = imgbyte;
            }
运行结果image1没有显示图片
使用道具 举报 回复 支持 反对
发表于 2020-11-12 09:43:46
DisplayMember DataBind()后才会生效,若是image不在listview或者gridview或者pageview的模板类中,是没有必要设置的
执行下image1.Refresh()看下二进制图是否显示
示例:https://github.com/comsmobiler/S ... onents/demoImage.cs
使用道具 举报 回复 支持 反对
发表于 2020-11-16 18:57:30
Lula.Jin 发表于 2020-11-12 09:43
DisplayMember DataBind()后才会生效,若是image不在listview或者gridview或者pageview的模板类中,是没 ...

这个是正常显示的
使用道具 举报 回复 支持 反对
发表于 2020-11-16 19:43:18
完美解决
使用道具 举报 回复
发新帖
您需要登录后才可以回帖 登录 | 立即注册