C# winfrom的datagridview 如何直接绑定datatable里的图片?

raymondlst 2011-06-28 11:54:40
数据库中存有产品的照片物理路径,想在datagridview中绑定datatable时,直接显示产品图片。


我做测试的代码:

   

private void BindData()
{
this.dataGridView1.DataSource = CreateData();
}

private DataTable CreateData()
{
//创建 DataTable
DataTable dt = new DataTable();
dt.Columns.Add("产品名", System.Type.GetType("System.String"));
//dt.Columns.Add("图片", System.Type.GetType("System.Drawing.Bitmap"));
dt.Columns.Add("图片", (System.Data.SqlDbType.Image).GetType());

DataRow dr = dt.NewRow();
dr["产品名"] = "001";
//dr["图片"] = @"C:\1.jpg";
dr["图片"] = FileToImage(@"C:\1.jpg");
dt.Rows.Add(dr);

return dt;
}

private Image FileToImage(string filePath)
{
System.Drawing.Image img = System.Drawing.Image.FromFile(filePath);
return img;
}


目前运行到 dr["图片"] = FileToImage(@"C:\1.jpg"); 这就出错了。

我的问题是:

1、DataTable 图片的存放类型是什么,添加Columns时,具体应该怎么写;

2、如果 DataTable 里直接存放图片数据可行的话,在DataGridView直接绑定DataTable,图片显示是否可行;

3、如果我的思路有问题,或者各位有更好的办法,请告诉我。


这问题纠结我很久了,谢谢!
...全文
1002 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
raymondlst 2011-06-29
  • 打赏
  • 举报
回复
直接存图片问题就很简单了。但系统的图片很多,有专门的图片服务器,所有图片都是文件存在的。

前提不允许。
raymondlst 2011-06-29
  • 打赏
  • 举报
回复
已经解决图片显示的问题,用Byte[]类型就可以显示。不过效果很不好,正在找办法解决。

dt.Columns.Add("图片", (System.Type.GetType("System.Byte[]"))); 


接下来还要解决这个显示区域高宽的问题。通过AsposeExcel导出图片时候行列的高宽也在折磨我。有朋友知道具体的解决办法吗。



EdsionWang 2011-06-29
  • 打赏
  • 举报
回复
直接存照片啊
tyg111 2011-06-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xiongxyt2 的回复:]

直接将图片存入数据库,查询得到DataSet后绑定
[/Quote]
+1
xiongxyt2 2011-06-29
  • 打赏
  • 举报
回复
直接将图片存入数据库,查询得到DataSet后绑定
足球中国 2011-06-29
  • 打赏
  • 举报
回复
看错误类型是什么,然后根据错误类型找到答案。
namhyuk 2011-06-29
  • 打赏
  • 举报
回复
是啊,我就记得好像可以直接显示数据库中image(或varbinary)字段中的图片的。
isjoe 2011-06-29
  • 打赏
  • 举报
回复
如果你的数据库里面存放的不是路径而是图片的话,是image类型,对应DataTable是byte[]。

有两个方法:

第一,数据库直接存放图片,读取到DataTable里面就是byte数组,datagridview对应的列选择成Image类型即可显示。

第二、datagridview有个绘制单元格事件,自己绘制。还有个方法是继承datagridview的列模板类,然后自定义列模板,并将这个模板类赋值给datagridview的图像列。
内容概要:本文系统研究了在有限控制集约束下,三相并网逆变器中电流与功率双模态模型预测控制(MPC)的等效机理及其性能边界。通过构建精确的预测模型,设计合理的代价函数,并结合Simulink仿真与Matlab代码实现,深入分析了电流预测控制与功率预测控制两种策略在动态响应速度、稳态精度、谐波抑制能力和抗扰性等方面的差异与内在联系。研究揭示了在特定系统参数和运行条件下,两种控制模式之间的等效转化机制,并界定了各自的适用范围与性能极限。同时,探讨了多模态控制的切换逻辑、实时性优化及预测模型不确定性对控制性能的影响,旨在提升逆变器在复杂电网环境下的综合控制品质与鲁棒性。; 适合人群:具备电力电子、自动控制或新能源并网等相关专业背景,熟悉Matlab/Simulink仿真环境,从事研究生及以上层次科研或从事高端电力电子装备研发的工程技术人员。; 使用场景及目标:①深入理解模型预测控制在并网逆变器中的具体实现方法与理论基础;②掌握电流与功率双模态MPC控制器的设计、仿真建模与性能对比评估流程;③为高动态、高精度并网控制系统的方案选型、参数优化与工程化应用提供坚实的理论依据和技术参考。; 阅读建议:建议结合所提供的Simulink仿真模型与Matlab源代码进行同步实验验证,重点关注预测模型的建立过程、控制律的数学推导以及不同工况下的仿真结果对比分析,宜配合现代控制理论、电力电子变换技术及并网标准等相关资料进行系统性学习。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧