在网格视图中显示数据库中的图像

本文关键字:图像 数据库 显示 视图 网格 | 更新日期: 2023-09-27 18:34:43

我有一个显示建筑物信息的网格视图。我正在将信息从如下所示的数据库加载到 GridView 中:

var buildings = (from t in dc.Towns
                         where (t.userid == userid) && (t.time < DateTime.Now) 
                         join b in dc.Buildings
                             on t.buildingid equals b.buildingid
                             into j1
                         from j2 in j1.DefaultIfEmpty()
                         group j2 by j2.buildingname
                         into grouped
                         select new
                                    {
                                        Building= grouped.Key,
                                        Picture= grouped.First().imagePath,
                                        Number= grouped.Count()
                                    });
        gvBuildings.DataSource = buildings.ToList();
        gvBuildings.DataBind();

但是我无法显示图像,它只显示保存图像的路径。如何在网格视图中显示路径中的图像?

在网格视图中显示数据库中的图像

您必须具有可以显示图像的列类型,使用图像字段并使用该URL设置DataImageUrlField属性,有关详细信息,请参阅此处:

http://msdn.microsoft.com/en-us/library/aa479350.aspx

尝试使用 Image.FromFile(字符串路径(将图像作为图像对象加载,并将它们放入绑定数据中以代替路径。

例如

                 select new
                            {
                                Building= grouped.Key,
                                Picture= Image.FromFile(grouped.First().imagePath),
                                Number= grouped.Count()
                            });

当然,您需要一些错误处理,我还建议将数据访问代码与显示逻辑分开,而不是将它们全部放在一种方法中。