亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        .Net+SQL Server圖像存取的研究與實(shí)現(xiàn)

        2012-11-26 06:32:32歐陽艷階王家旭
        關(guān)鍵詞:二進(jìn)制字節(jié)代碼

        歐陽艷階,王家旭

        (十堰職業(yè)技術(shù)學(xué)院 信息與智能工程系,湖北 十堰 442000)

        隨著計(jì)算機(jī)軟件在各個行業(yè)的應(yīng)用發(fā)展,管理信息系統(tǒng)成為必不可少的管理工具。在管理信息系統(tǒng)中,圖像存取成為必不可少的信息處理要求。如照片、醫(yī)用影像、工程圖紙掃描圖像、地圖等。然而圖像信息所含的數(shù)據(jù)量遠(yuǎn)遠(yuǎn)大于普通數(shù)據(jù)的數(shù)據(jù)量。如何在管理信息系統(tǒng)中存取圖像也是程序員在開發(fā)過程中要解決的關(guān)鍵問題。

        本文結(jié)合筆者開發(fā)的汽車零部件管理信息系統(tǒng)中汽車及零部件圖像的存取功能,給出了圖像的兩種存儲及讀取方法,并使用C#.Net開發(fā)工具實(shí)現(xiàn)了圖像在SQL Server 2005數(shù)據(jù)庫中的存儲和讀取操作。

        1 圖像存取方法概述

        通常程序員在解決管理信息系統(tǒng)中圖像的存取問題時(shí)主要采用兩種方法。一是將圖像以數(shù)據(jù)庫方式存儲;二是將圖像以文件系統(tǒng)存儲。這兩種方式各有優(yōu)缺點(diǎn),其使用環(huán)境也有差別。

        1.1 圖像以數(shù)據(jù)庫方式存儲

        這種圖像存取方式優(yōu)點(diǎn)有以下幾個方面:

        (1)管理方便。當(dāng)圖像與其他數(shù)據(jù)一同存儲在數(shù)據(jù)庫中時(shí),圖像與其他數(shù)據(jù)能共同備份和復(fù)原。從而避免了普通數(shù)據(jù)與圖像數(shù)據(jù)的不同步,并且避免了其他用戶無意中誤操作圖像的風(fēng)險(xiǎn)。

        (2)共享與查詢效率高。將圖像存儲在SQL Server數(shù)據(jù)庫中可以與其他數(shù)據(jù)一樣,同時(shí)完成插入、修改、刪除和查詢操作,保證圖像與普通數(shù)據(jù)的一致性。同時(shí)操作員可以在任何時(shí)間任何地點(diǎn)任何一部終端上打開數(shù)據(jù)庫并使用圖像數(shù)據(jù),大大提高圖像數(shù)據(jù)的共享、查詢效率。

        (3)提高圖像安全性。圖像存儲到SQL Server數(shù)據(jù)庫中以后,其安全性,特別是遠(yuǎn)程訪問安全性將由SQL Server提供的安全保證機(jī)制來實(shí)現(xiàn),大大提高圖像訪問控制的強(qiáng)度。

        但將圖像存儲于數(shù)據(jù)庫方式也存在著以下缺陷:

        (1)圖像放在數(shù)據(jù)庫中不便于修改編輯。

        (2)數(shù)據(jù)庫讀取數(shù)據(jù)時(shí)的I/O消耗比較大。

        1.2 文件系統(tǒng)存儲圖像

        使用文件系統(tǒng)存儲是指將圖像存儲在文件中,將文件的路徑信息存儲在數(shù)據(jù)庫中,通過數(shù)據(jù)庫中的路徑信息來完成存儲在指定的文件夾中的文件操作。

        這種圖像方式有以下優(yōu)點(diǎn):

        (1)圖像編輯簡單方便。編輯圖像時(shí)使用工具軟件對圖像進(jìn)行直接編輯、存儲,只與硬盤打交道,不涉及數(shù)據(jù)庫和其他服務(wù)功能,簡單方便。

        (2)節(jié)省數(shù)據(jù)庫空間,有效地避免了數(shù)據(jù)庫的膨脹。

        但是,這種方式需要借助文件系統(tǒng)實(shí)現(xiàn)。其最大的缺點(diǎn)是文件系統(tǒng)的安全保護(hù)措施比較脆弱,可能會造成圖像信息的不良復(fù)制、修改、刪除及誤操作。

        2 SQL Server圖像存取的相關(guān)訪問類

        2.1 數(shù)據(jù)庫訪問類

        .NET平臺下SQL Server常見的數(shù)據(jù)驅(qū)動類在System.Data.SqlClient類庫中,本文SQL Serv-er圖像存取功能的實(shí)現(xiàn)必須使用以下兩個類。

        (1)SqlConnection類。SqlConnection類用于連接數(shù)據(jù)庫,它代表數(shù)據(jù)庫和數(shù)據(jù)用戶之間的實(shí)際連接。這個對象中包含有用于打開和關(guān)閉連接的方法,并且還包含有描述當(dāng)前連接狀態(tài)的屬性。Sql-Connection類的語法格式如下:SqlConnection conn=new SqlConnection(“Server=服務(wù)器標(biāo)識;Data-Base=數(shù)據(jù)庫名稱;Uid=用戶名稱;pwd=密碼;”);

        Server:目標(biāo)服務(wù)器IP,若為本機(jī)可使用“.”或“(Local),”;

        DataBase:目標(biāo)數(shù)據(jù)庫名稱 ;

        Uid或User ID,連接數(shù)據(jù)庫的用戶名;

        Pwd或Password:連接數(shù)據(jù)庫的密碼。

        (2)SqlCommand類。SqlCommand類是數(shù)據(jù)庫命令的封裝。這個命令既可以是SQL語句,又可以是存儲過程。SqlCommand類可以重置CommandText屬性并重復(fù)使用SqlCommand對象。SqlCommand類特別提供了對SQL Server數(shù)據(jù)庫執(zhí)行命令的方法。ExecuteReader方法執(zhí)行有返回行的命令,該方法需要設(shè)定SQLDataReader對象接受返回結(jié)果;ExecuteNonQuery方法執(zhí)行如INSERT、DELELE、UPDATE語句等無返回結(jié)果的命令;ExecuteScalar方法從數(shù)據(jù)庫中檢索單個值(例如一個聚合值);ExecuteXmlReader方法將CommandText發(fā)送到Connection并生成一個XmlReader對象。

        2.2 文件I/O類

        FileStream類是以文件輸入輸出為主的Stream,既支持同步讀寫操作,也支持異步讀寫操作,其命名空間為System.IO。FileStream對象可以通過URL指定的簡單文件打開硬盤中的圖像文件,其作用是提供通用文件訪問功能。在各種數(shù)據(jù)庫文件訪問中,F(xiàn)ileStream以其易于使用、熟悉的界面、高速度以及較低的內(nèi)存占用,成為目前操作最方便的數(shù)據(jù)訪問技術(shù)。

        FileStream對象提供文件讀取、寫入以及管理字節(jié)流的手段。該字節(jié)流可以是文本或二進(jìn)制數(shù),并且在大小方面只受限于系統(tǒng)資源。

        2.3 圖像定義與轉(zhuǎn)換類Image

        在SQL Server數(shù)據(jù)庫中,小于8 000字節(jié)的圖像數(shù)據(jù)可以用二進(jìn)制型(binary、varbinary)來表示。對于大于8 000個字節(jié)的圖像,SQL Server提供二進(jìn)制大對象(BLOB)進(jìn)行存儲。Image數(shù)據(jù)類型即是BLOB對象的一種,用于存儲二進(jìn)制類型數(shù)據(jù),比如:圖像、視頻、可執(zhí)行文件等。C#中Image類提供了位圖和元文件操作的函數(shù),該類的圖像處理方法有以下三種:

        (1)FromFile方法。它根據(jù)輸入的文件名產(chǎn)生一個Image對象,其函數(shù)形式包括public static Image FromFile(string filename)和public static Image FromFile(string filename,bool useEmbedded-ColorManagement)兩種;

        (2)FromHBitmap方法。它從一個 windows句柄處創(chuàng)建一個bitmap對象,其函數(shù)形式包括public static bitmap fromhbitmap(intptr hbitmap)和public static bitmap fromhbitmap(intptr hbitmap,intptr hpalette)兩種;

        (3)FromStream方法。從一個數(shù)據(jù)流中創(chuàng)建一個image對象,其函數(shù)形式包括public static image fromstream(stream stream)、public static image fromstream(stream stream,bool useembeddedcolormanagement) 和 fromstream (stream stream,bool useembeddedcolormanagement,bool validateimagedata)三種。

        3 圖像數(shù)據(jù)存取服務(wù)的設(shè)計(jì)與實(shí)現(xiàn)

        筆者結(jié)合“汽車零部件管理”的開發(fā),詳細(xì)介紹C#.Net+SQL Server數(shù)據(jù)庫圖像存取的實(shí)現(xiàn)方法。

        3.1 數(shù)據(jù)庫的設(shè)計(jì)

        創(chuàng)建數(shù)據(jù)庫“AutoManageDB”,并創(chuàng)建表“AutoPhotoTable”,表結(jié)構(gòu)設(shè)計(jì)為:(PictureID int;PictureContent Image;PictureText varchar(50))。在數(shù)據(jù)庫設(shè)計(jì)中,設(shè)計(jì)圖像字段PictureContent的類型為Image,存儲二進(jìn)制數(shù)據(jù);設(shè)計(jì)圖像描述字段PictureText為varchar(50),用于存儲圖像的查詢關(guān)鍵字。

        3.2 圖像存儲代碼及算法[1]

        在使用SQL Server數(shù)據(jù)庫進(jìn)行圖片存儲時(shí),首先將圖像文件轉(zhuǎn)換為二進(jìn)制數(shù)據(jù),并保存在內(nèi)存。然后建立與數(shù)據(jù)庫的連接,使用SqlCommand類的Insert語句將圖像插入數(shù)據(jù)庫中表的指定字段。Stream對象提供讀取、寫入以及管理字節(jié)流的手段。該字節(jié)流可以是文本或二進(jìn)制數(shù),并且在大小方面只受限于系統(tǒng)資源?!按鎯D像到數(shù)據(jù)庫”的代碼如下:

        代碼中最關(guān)鍵的設(shè)計(jì)是圖像變量的定義及圖像長度的獲取。使用Parameters.Add方法和photo.Length屬性即可獲取和設(shè)置。

        3.3 圖像讀取功能代碼及算法

        讀取存儲在數(shù)據(jù)庫表中的二進(jìn)制圖像數(shù)據(jù)時(shí),直接查詢圖像所在記錄,讀入內(nèi)存,并通過字節(jié)數(shù)組轉(zhuǎn)換為PictureBox控件能顯示的文件流數(shù)據(jù)直接顯示。其核心代碼如下:

        4 結(jié)束語

        一個好的圖像存取解決方案不僅能夠使管理信息系統(tǒng)具有更大的適應(yīng)性,而且能大大提高管理信息系統(tǒng)的使用方便性和執(zhí)行效率。本文介紹的設(shè)計(jì)思想在Visual C#.Net 2008+SQL Server 2008環(huán)境中成功地實(shí)現(xiàn)了圖像在數(shù)據(jù)庫的存取。該方法操作簡單,容易掌握,使得我們不需要編寫大量的代碼,就可以實(shí)現(xiàn)在管理信息系統(tǒng)中存儲和顯示圖像文件。

        [1]徐人鳳.SQL Server 2005數(shù)據(jù)庫及應(yīng)用[M].北京:高等教育出版社,2007:72.

        猜你喜歡
        二進(jìn)制字節(jié)代碼
        用二進(jìn)制解一道高中數(shù)學(xué)聯(lián)賽數(shù)論題
        No.8 字節(jié)跳動將推出獨(dú)立出口電商APP
        有趣的進(jìn)度
        二進(jìn)制在競賽題中的應(yīng)用
        No.10 “字節(jié)跳動手機(jī)”要來了?
        創(chuàng)世代碼
        動漫星空(2018年11期)2018-10-26 02:24:02
        創(chuàng)世代碼
        動漫星空(2018年2期)2018-10-26 02:11:00
        創(chuàng)世代碼
        動漫星空(2018年9期)2018-10-26 01:16:48
        創(chuàng)世代碼
        動漫星空(2018年5期)2018-10-26 01:15:02
        簡談MC7字節(jié)碼
        亚洲图片日本视频免费| 久久久人妻一区精品久久久| 国产做无码视频在线观看浪潮| 国产熟女精品一区二区三区| 日本成年少妇人妻中文字幕| 国产一品二品三品精品在线| 亚洲av成人无码精品电影在线| 亚洲人成电影在线无码| 久久亚洲精品一区二区| 日本最新一区二区三区在线视频| 亚洲 卡通 欧美 制服 中文| 欧美国产小视频| 国产av熟女一区二区三区老牛| 日韩人妖视频一区二区| 人人摸人人操| 国产精品久久久久尤物| 国产视频一区二区三区免费| 无码精品国产一区二区三区免费| 人妻少妇精品视频三区二区一区| 国产精品免费久久久久影院 | 日韩人妻无码免费视频一区二区三区| 亚洲精品国产国语| 国产优质av一区二区三区| 大又大又粗又硬又爽少妇毛片| 一本之道高清无码视频| 欧美a级在线现免费观看| 中文字幕一区二区三区四区久久| 少妇被猛烈进入到喷白浆| 日韩精品一区二区三区免费视频 | 精产国品一二三产品蜜桃| 国产在亚洲线视频观看| 亚洲97成人精品久久久| 国产三级精品三级| 亚洲狠狠网站色噜噜| 一区二区三区精品婷婷| 丝袜美腿亚洲一区二区| 久久久久久久久888| 国产精品女同久久久久久| 黄污在线观看一区二区三区三州| 国产青草视频在线观看| 中日韩欧美成人免费播放|