日期:2014-05-18  浏览次数:20854 次

LISTVIEW中显示照片
ORACLE数据库中用BLOB存照片,想在C#中把它从数据库中读出来后直接在LISTVIEW中显示。就像单位中的员工光荣榜一样的。该怎么处理。需要先生成文件,再用么?能不能直接从内存流中生成啊?

------解决方案--------------------
将图片存成流的形式,存在内存流中
然后定义一个图片对象,将内存流中的数据转换为图片对象。
将这个转换完的对象,正常添加到listview中。
------解决方案--------------------
用Listview的Imagelist就可以实现
------解决方案--------------------
用内存流,将long类型转换为2进制类型,
放到内存流里,将内存流转换为图像对象

------解决方案--------------------
.NET中最强,最全功能的表格控件
ivanx 著于2007-8-23 16:58:46
由于项目需要,我需要定制一个ListView,它必须能够在列中插入图像、下拉框、可上下调整的数字、进度条等等。于是本文产生了...

SourceGrid 4.9免费的窗体网格控件教程
Yuxiang 著于2007-8-30 2:07:09
SourceGrid是一个免费的完全以C#托管代码编写的.NET Windows窗体网格控件,可用于显示或改变表格形式的数据,还可用于绑定到一个数据源,如DataView,或者直接建立每个单元格。
------解决方案--------------------
REMEX1980 
这个家伙到处发广告啊,过分了吧
------解决方案--------------------
从ORACLE中提取图片方法是否和SQL中提取的方法差不多啊?没用过ORACLE,要是类似,这段代码看看行不行,主要用内存流:

SqlConnection myConnection = new SqlConnection("server=127.0.0.1;database=aaaa;uid=sa;pwd=sa");
string ss = "select pic from Pic where id = 4";
SqlCommand mycom = new SqlCommand(ss, myConnection);
DataSet MySet = new DataSet();
SqlDataAdapter MyAdapter = new SqlDataAdapter(mycom);
MyAdapter.Fill(MySet);

byte[] MyBytes = (byte[])MySet.Tables[0].Rows[1]["pic"];
MemoryStream MyStream = new MemoryStream(MyBytes);
this.pictureBox1.Image = Image.FromStream(MyStream);