999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

簡談VB中用數據庫存取圖片的簡便方法

2010-12-31 00:00:00李利平
計算機教育 2010年8期


  摘要:VB數據庫中圖像數據的存取對初學者來說是個難點,文章總結了綁定圖片控件、存儲圖片文件路徑、利用PropertyBag對象與Byte數組中轉三種較為簡便的方法以供初學者參考。
  關鍵詞:VB;Data控件;數據庫;圖片;存??;路徑;PropertyBag;Byte數組
  文章編號:1672-5913(2010)08-0125-04
  中圖分類號:G642
  文獻標識碼:B
  
  圖像數據的存取對初學者來說是個難點,而當前的VB教學因課時較短,所選教材或講授過程對數據庫一章要么忽略要么只是簡單地介紹,很少涉及到圖像的存取問題,而專業數據庫開發書籍中的大量源代碼又讓初學者看得頭疼,所以本文總結了3種相對簡便的方法以供參考。
  為順利運行程序,以下每種方法中,圖片文件夾和數據庫文件、VB程序文件同時存儲在同一目錄下。
  
  1 綁定圖片控件
  
  實現思路:用VB自帶VisData建立數據庫,把圖片存儲在數據庫表的Binary字段中,通過常用工具箱中Data控件與Image控件綁定,添加CommonDialog部件用以選擇圖片文件,在Image的DblClick事件中打開通用對話框,用LoadPicture函數把選定的圖片載入Image,用Data控件的四個箭頭瀏覽記錄。
  
  
  
  
  
  1.1建立圖片文件夾
  建立圖片文件夾bmp,把準備好的圖片(本例選用bmp、jpg、gif格式)放入其中,以備程序運行時添加和修改用。
  
  1.2建立數據庫
  啟動外接程序下的可視化數據管理器VisData,建立stu數據庫,新建xs表,包含學號、姓名、照片(類型Binary)3個字段。因Binary型字段在表中無法直接操作,所以生成表后并不需添加記錄,等程序運行時添加即可。
  
  1.3界面設計
  在窗體上添加2個標簽、2個文本框,2個命令按鈕,1個Data控件,1個圖像框,1個CommonDialog控件;設置圖像框的BodyStyle屬性為1,Stretch屬性設置為True;設置Data控件DataBaseName屬性為stu.mdb,RecordSource屬性為xs,設置Textl、Text2的DataSource屬性Datal,Textl的DataField屬性為姓名,Text2的DataField屬性為學號:標簽與命令按鈕屬性設置如圖1所示。
  
  1.4代碼編寫
  Data控件自動提供了修改現有記錄的能力,當直接改變和DATA綁定的控件的值后,只需單擊Data控件上任一箭頭,即可保存所做的修改。為防止任意修改,本例中在窗體的Load事件里使文本框只讀(Locked屬性為False)和圖象框禁用(Enabled屬性True),并在調用記錄集的AddNew和Update方法中根據需要進行了改變。完整源碼如下。
  
  2 存取圖像文件的路徑
  
  實現思路:VisData數據庫建庫,圖片以路徑的形式存儲在文本型字段中,用Data控件綁定存儲路徑的字段,用CommonDialog選擇圖片,如在指定圖片路徑下不存在該圖片,則調用API函數CopyFile復制圖片到指定路徑,再用LoadPicture函數把圖片載入Image,利用Data控件的四個箭頭瀏覽、保存記錄。
  
  2.1建立圖片文件夾
  建立圖片文件夾pic,把準備好的缺省圖片文件Rose.bmp放入其中,其他圖片文件可現在放入也可在運行時選擇并復制。
  
  2.2建立數據庫
  啟動VisData建立數據庫fm.mdb,表cy,包含姓名、照片2個Text類型字段,并設置姓名字段的缺省值“Rose”,照片字段的缺省值“pic\Rose.bmp”,以備新增記錄時Reposition事件代碼的正常運行。
  
  2.3設計界面
  界面設計同方法二,只是照片字段綁定的是Text2而非Imagel,具體設計如圖2所示。
  
  2.4代碼編寫
  因與Data控件綁定的是存儲路徑的字段,為隨記錄的變化而動態把字段存儲的路徑賦值給Image控件的Picture屬性,本方法調用了Data控件的Reposition事件。完整源碼如下:
  
  3
  利用PropertyBag對象與Byte數組
  
  實現思路:Access2003建庫,圖片存儲在OLE類型字段中,引用ADO 2.7 library進行數據庫連接,用PropertyBag對象與Byte數組中轉存取圖片。
  
  3.1數據庫設計
  啟動Access2003,建立數據庫book.mdb,表shu,包含書名(文本類型)、圖片(OLE對象)2個字段。因程序中Byte數組存取的是長二進制數據,所以不要在表建立后通過“插入對象”命令輸入圖像數據。
  
  3.2界面設計
  新建工程,引用ADO 2.7,界面具體設計如圖3所示。
  
  3.3代碼編寫
  本文中主要列出了數據庫的連接、圖片的顯示與保存代碼,而記錄的瀏覽與增刪通過調用記錄集的AddNew、Delete、Move等方法實現,記得在相關方法后用ShowData顯示數據,核心代碼如下:
  (4)窗體載入時用ADODB建立數據庫連接,再調用ShowData函數顯示數據。
  
  4 結語
  
  除本文介紹的3種方法外,數據庫存取圖片的常見方法還有兩種:一種是利用ADO對象的AppendChunk和GetChunk方法,這涉及到對二進制數據的讀寫和臨時文件的建立操作,步驟多,操作復雜,不適合初學者;第二種是利用ADO的Stream對象,雖Stream對象的引入已大大簡化了二進制字段的操作,但還是要留下臨時文件。與此兩種方法相比,筆者所介紹的三種方法都無需對二進制文件直接進行存取,不會產生臨時文件,代碼編寫簡單,操作步驟少,所以很適合初學者使

主站蜘蛛池模板: 亚洲中文字幕在线精品一区| 爽爽影院十八禁在线观看| 草草影院国产第一页| 大香网伊人久久综合网2020| 伊人成人在线| 亚洲无码视频图片| 国产欧美精品专区一区二区| 超碰91免费人妻| 日韩av手机在线| 亚洲无码免费黄色网址| 国产精品jizz在线观看软件| 亚洲伦理一区二区| 国产微拍一区| 日韩美毛片| 日本人妻一区二区三区不卡影院| 国产福利小视频高清在线观看| 欧美日韩国产在线播放| 国产精品原创不卡在线| 最新国产精品第1页| 在线中文字幕日韩| 久久国产精品波多野结衣| 亚洲日本www| 亚洲美女久久| 99re经典视频在线| 国产亚洲精品资源在线26u| 久久青青草原亚洲av无码| 国产极品美女在线观看| 91美女在线| 国产精品福利在线观看无码卡| 国产精品一区二区不卡的视频| 一级毛片在线直接观看| 亚州AV秘 一区二区三区| 亚洲永久色| 91蜜芽尤物福利在线观看| 亚洲日韩精品无码专区97| 久久综合婷婷| 狠狠五月天中文字幕| 拍国产真实乱人偷精品| 国产一二三区视频| 国产亚洲精久久久久久无码AV| 自拍偷拍一区| 亚洲天堂高清| 欧美激情综合一区二区| 欧美在线网| Jizz国产色系免费| 97se亚洲综合在线韩国专区福利| 高清无码手机在线观看| 亚洲第一成网站| 久久一本精品久久久ー99| 国产成人1024精品下载| 国产精品尹人在线观看| 99re热精品视频国产免费| 91亚洲精选| 5388国产亚洲欧美在线观看| 亚洲IV视频免费在线光看| 99免费在线观看视频| 在线观看欧美国产| 国产精品无码久久久久久| 国产乱子伦精品视频| 亚洲AV成人一区二区三区AV| 日韩欧美国产另类| 在线免费不卡视频| 国产精品9| 性色生活片在线观看| 久久亚洲欧美综合| 国产亚洲成AⅤ人片在线观看| 91在线国内在线播放老师| 女人爽到高潮免费视频大全| 91在线国内在线播放老师| 亚洲欧洲日产国产无码AV| jizz国产视频| 久久精品视频一| 日韩A∨精品日韩精品无码| 丁香婷婷综合激情| 777午夜精品电影免费看| 久久人人爽人人爽人人片aV东京热| 老司机久久99久久精品播放| 国产精品三级专区| 在线一级毛片| 国产精品v欧美| 亚洲国产中文在线二区三区免| 无码精品国产VA在线观看DVD|