轉(zhuǎn)帖|其它|編輯:郝浩|2011-01-21 11:50:21.000|閱讀 6147 次
概述:也許有的人說(shuō),顯示圖片還不是很簡(jiǎn)單的事情,保存圖片路徑到數(shù)據(jù)庫(kù)的方式顯示圖片也是很簡(jiǎn)單的啊!但是在gridControl中以cardview 來(lái)顯示的時(shí)候沒(méi)有想datagridview中相類似的cellFormatting事件來(lái)更改顯示的方式,所以還通過(guò)中間轉(zhuǎn)換才能夠?qū)?duì)應(yīng)的圖片顯示到 cardview中。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
也許有的人說(shuō),顯示圖片還不是很簡(jiǎn)單的事情,保存圖片路徑到數(shù)據(jù)庫(kù)的方式顯示圖片也是很簡(jiǎn)單的啊!但是在gridControl中以cardview來(lái)顯示的時(shí)候沒(méi)有想datagridview中相類似的cellFormatting事件來(lái)更改顯示的方式,所以還通過(guò)中間轉(zhuǎn)換才能夠?qū)?duì)應(yīng)的圖片顯示到cardview中。
用gridControl控件中的cardview方式顯示圖片有兩種方式,
一種是直接把圖片以二進(jìn)制的形式存入數(shù)據(jù)庫(kù)中,在顯示時(shí)直接通過(guò)dataset將其對(duì)應(yīng)的信息取出賦值給datatable再把其與gridControl的數(shù)據(jù)源綁定。即可顯示。此種方式簡(jiǎn)單方便,但是比較好資源,占用了數(shù)據(jù)庫(kù)大量的空間。不推薦。
第二種是把圖片以其路徑的形式存入數(shù)據(jù)庫(kù)中,顯示時(shí)通過(guò)路徑來(lái)獲取圖片的二進(jìn)制再把獲取的二進(jìn)制的值賦值給datatable,綁定到gridControl即可。雖然看起來(lái)比較麻煩,但還是推薦用這種方式。暫時(shí)還沒(méi)有找到更好的方法,若有人有更好的方法,希望分享下下...
下面是兩種方法實(shí)現(xiàn)的主要代碼。
方式一:
前提:圖片以二進(jìn)制存到了數(shù)據(jù)庫(kù)中。
Public adata As New testDatesetTableAdapters.TestTableAdapter
Public testtbaAs New testDateset.TestDataTable
adata.FillByVipNum(testtba, testNum)//table name,param1
If testtba.Rows.Count > 0 Then
GridControl1.DataSource = testtba
方式二:(C#)
//顯示數(shù)據(jù)
private void showData(List<Employee > list)
{
DataTable dt = new DataTable("OneEmployee");
dt.Columns.Add("Caption", System.Type.GetType("System.String"));
dt.Columns.Add("Department", System.Type.GetType("System.String"));
dt.Columns.Add("PhotoName", System.Type.GetType("System.Byte[]"));
for (int i = 0; i < list.Count; i++)
{
DataRow dr = dt.NewRow();
dr["Caption"] = list[i].Name;
dr["Department"] = list[i].Department;
string imagePath = @"D:\C#\photos\" + list[i].PhotoPath;
dr["PhotoName"] = getImageByte(imagePath);
dt.Rows.Add(dr);
}
gridControl1.DataSource = dt;
}
//返回圖片的字節(jié)流byte[]
private byte[] getImageByte(string imagePath)
{
FileStream files = new FileStream(imagePath, FileMode.Open);
byte[] imgByte = new byte [files.Length ];
files.Read(imgByte, 0, imgByte.Length);
files.Close();
return imgByte;
}
效果圖為:
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:網(wǎng)絡(luò)轉(zhuǎn)載