這是vb2005的代碼,你試一下,這是我以前做的一段代碼,從庫中讀取到顯示。
創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)與策劃設(shè)計(jì),東川網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:東川等地區(qū)。東川做網(wǎng)站價(jià)格咨詢:028-86922220
olecon = New OleDbConnection(constr)
olecon.Open()
Dim comm As New OleDbCommand("select 照片 from 表 where name='李三', olecon)
Dim reader As OleDbDataReader = comm.ExecuteReader
reader.Read()
Dim photofile() As Byte
photofile = reader.GetValue(0)
Dim streamph As New MemoryStream(photofile)
PictureBox1.Image = Image.FromStream(streamph)
這段代碼是我從我做的小軟件中截出來的,我在2005中就用著,2005是通過的,不知道加到2010中能否執(zhí)行。
-------------------------------
根據(jù)你的發(fā)的圖,我看了,好像你從庫中取出的不是一條記錄呀,我的代碼只能取一條記錄的情況,你的明顯取出多條記錄,代碼只認(rèn)最后一條,你的文件長度為0,當(dāng)然不行了
select 照片 from 表 where name='李三',這條語句只能取出單條記錄,且ole字段中確定有文件存在的,而且是圖片格式才能顯示
-------------------------------------------------------
Dim streamph As New MemoryStream(photofile)
你的是 Dim streamph = New MemoryStream(photofile)
這句你的和我的不一樣,是不是這里的問題,2010沒用過,要是還不行,我也不知道了
ole對象實(shí)際上就是別人的程序原封不動(dòng)的拿來使用??稍?Visual Basic 應(yīng)用程序中添加的最強(qiáng)大、最有用的功能之一就是在控件和控件之間、在控件和其它 Windows 應(yīng)用程序之間拖動(dòng)文本和圖形。有了 OLE,就可將這種功能引入到應(yīng)用程序中。
使用 OLE 拖放時(shí),并不是把一個(gè)控件拖動(dòng)到另一個(gè)控件并調(diào)用代碼(象本章前面討論的拖放一樣);而是將數(shù)據(jù)從一個(gè)控件或應(yīng)用程序移動(dòng)到另一個(gè)控件或應(yīng)用程序。例如,您可以選擇并拖動(dòng)
Excel 中的一個(gè)單元范圍,然后將它們放到應(yīng)用程序的 DataGrid 控件上。
Visual Basic 的幾乎所有控件都在某種程度上支持 OLE 拖放。此外,一些標(biāo)準(zhǔn)的和 ActiveX 控件(由 Visual Basic 專業(yè)版和企業(yè)版提供的)還提供對 OLE 拖放的自動(dòng)支持,這意味著控件支持在 OLEDragMode 和 OLEDropMode 屬性中的自動(dòng)設(shè)置,并且無論是從控件拖出還是在控件內(nèi)放入都不需要編寫代碼。這一點(diǎn)與手動(dòng)拖放相反,在手動(dòng)拖放中,您必須為拖放編程:
有些支持自動(dòng) OLEDragMode 和 OLEDropMode 的控件包括 PictureBox、Label、以及 TextBox 控件。為對這些控件啟動(dòng)自動(dòng) OLE 拖放,應(yīng)將 OLEDragMode 和 OLEDropMode 都設(shè)置為“自動(dòng)化”。
有些控件支持自動(dòng) OLE 拖動(dòng),但只支持手動(dòng)放下,有些支持自動(dòng)放下,但只支持手動(dòng)拖動(dòng)。例如,ComboBox 控件支持手動(dòng)和自動(dòng)拖動(dòng),但不支持自動(dòng)放下。這是由于如果您將一個(gè)項(xiàng)目拖動(dòng)到 ComboBox 中,Visual Basic 無法知道將新項(xiàng)目放下的確切位置。然而,可以使用手動(dòng)放下
,這樣您就可以將項(xiàng)目程序化的放在您希望在 ComboBox 中的位置了。要啟動(dòng)這些控件的自動(dòng)拖動(dòng),應(yīng)將 OLEDragMode 屬性設(shè)置為“自動(dòng)化”。
有些控件只支持手動(dòng) OLE 拖放事件,這意味著可用代碼對它們進(jìn)行編程,使之成為 OLE 拖放操作的源,也可使之成為 OLE 拖放操作的目標(biāo)。
注意 為判斷其它 ActiveX 控件是否支持 OLE 拖放,應(yīng)在 Visual Basic 中加載控件并檢查 OLEDragMode 和 OLEDropMode 屬性是否存在,或檢查 OLEDrag 方法是否存在。(不自動(dòng)支持 OLE 拖動(dòng)的控件也將不具有 OLEDragMode 屬性,但是,如果控件通過代碼支持 OLE 拖動(dòng),則其具有 OLEDrag 方法。)
注意 窗體、MDI 窗體、文檔對象、用戶控件和屬性頁都包含 OLEDropMode 屬性,而且僅支持手工拖放。
OLE 控件(現(xiàn)在稱為ActiveX 控件)OLE(發(fā)音為“oh—Lay”)的全稱是:Object Linking and Embedding(對象鏈接與嵌入)。可以在 Windows 應(yīng)用程序的對話框中使用,或在萬維網(wǎng)的 HTML 頁中使用。
即為對象的鏈接與嵌入
也可以指把提供嵌入及鏈接對象的應(yīng)用程序,稱為服務(wù)器應(yīng)用程序(Servers),在VB中也稱為"對象應(yīng)用程序"。
把接受嵌入及鏈接對象的應(yīng)用程序,稱為客戶(Clients)應(yīng)用程序,在VB中也稱為"控制應(yīng)用程序"。
名詞解釋:
VB:
Visual Basic是一種由微軟公司開發(fā)的包含協(xié)助開發(fā)環(huán)境的事件驅(qū)動(dòng)編程語言。從任何標(biāo)準(zhǔn)來說,VB都是世界上使用人數(shù)最多的語言——不僅是盛贊VB的開發(fā)者還是抱怨VB的開發(fā)者的數(shù)量。它源自于BASIC編程語言。VB擁有圖形用戶界面(GUI)和快速應(yīng)用程序開發(fā)(RAD)系統(tǒng),可以輕易的使用DAO、RDO、ADO連接數(shù)據(jù)庫,或者輕松的創(chuàng)建ActiveX控件。程序員可以輕松的使用VB提供的組件快速建立一個(gè)應(yīng)用程序。
語言特性
VB 的中心思想就是要便于程序員使用,無論是新手或者專家。VB使用了可以簡單建立應(yīng)用程序的 GUI 系統(tǒng),但是又可以開發(fā)相當(dāng)復(fù)雜的程序。VB 的程序是一種基于窗體的可視化組件安排的聯(lián)合,并且增加代碼來指定組件的屬性和方法。因?yàn)槟J(rèn)的屬性和方法已經(jīng)有一部分定義在了組件內(nèi),所以程序員不用寫多少代碼就可以完成一個(gè)簡單的程序。過去的版本里面 VB 程序的性能問題一直被放在了桌面上,但是隨著計(jì)算機(jī)速度的飛速增加,關(guān)于性能的爭論已經(jīng)越來越少。
窗體控件的增加和改變可以用拖放技術(shù)實(shí)現(xiàn)。一個(gè)排列滿控件的工具箱用來顯示可用控件(比如文本框或者按鈕)。每個(gè)控件都有自己的屬性和事件。默認(rèn)的屬性值會(huì)在控件創(chuàng)建的時(shí)候提供,但是程序員也可以進(jìn)行更改。很多的屬性值可以在運(yùn)行時(shí)候隨著用戶的動(dòng)作和修改進(jìn)行改動(dòng),這樣就形成了一個(gè)動(dòng)態(tài)的程序。舉個(gè)例子來說:窗體的大小改變事件中加入了可以改變控件位置的代碼,在運(yùn)行時(shí)候每當(dāng)用戶更改窗口大小,控件也會(huì)隨之改變位置。在文本框中的文字改變事件中加入相應(yīng)的代碼,程序就能夠在文字輸入的時(shí)候自動(dòng)翻譯或者阻止某些字符的輸入。
VB 的程序可以包含一個(gè)或多個(gè)窗體,或者是一個(gè)主窗體和多個(gè)子窗體,類似于操作系統(tǒng)的樣子。有很少功能的對話框窗口(比如沒有最大化和最小化按鈕的窗體)可以用來提供彈出功能。
VB 的組件既可以擁有用戶界面,也可以沒有。這樣一來服務(wù)器端程序就可以處理增加的模塊。
VB 使用參數(shù)計(jì)算的方法來進(jìn)行垃圾收集,這個(gè)方法中包含有大量的對象,提供基本的面向?qū)ο笾С?。因?yàn)樵絹碓蕉嘟M件的出現(xiàn),程序員可以選用自己需要的擴(kuò)展庫。和有些語言不一樣,VB 對大小寫不敏感,但是能自動(dòng)轉(zhuǎn)換關(guān)鍵詞到標(biāo)準(zhǔn)的大小寫狀態(tài),以及強(qiáng)制使得符號表入口的實(shí)體的變量名稱遵循書寫規(guī)則。默認(rèn)情況下字符串的比較是對大小寫敏感的,但是可以關(guān)閉這個(gè)功能。
VB 使得大量的外界控件有了自己的生存空間。大量的第三方控件針對 VB 提供。VB 也提供了建立、使用和重用這些控件的方法,但是由于語言問題,從一個(gè)應(yīng)用程序創(chuàng)建另外一個(gè)并不簡單。