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

        ?

        .Net+SQL Server圖像存取的研究與實現

        2012-11-26 06:32:32歐陽艷階王家旭
        關鍵詞:數據庫方法

        歐陽艷階,王家旭

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

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

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

        1 圖像存取方法概述

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

        1.1 圖像以數據庫方式存儲

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

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

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

        (3)提高圖像安全性。圖像存儲到SQL Server數據庫中以后,其安全性,特別是遠程訪問安全性將由SQL Server提供的安全保證機制來實現,大大提高圖像訪問控制的強度。

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

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

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

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

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

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

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

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

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

        2 SQL Server圖像存取的相關訪問類

        2.1 數據庫訪問類

        .NET平臺下SQL Server常見的數據驅動類在System.Data.SqlClient類庫中,本文SQL Serv-er圖像存取功能的實現必須使用以下兩個類。

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

        Server:目標服務器IP,若為本機可使用“.”或“(Local),”;

        DataBase:目標數據庫名稱 ;

        Uid或User ID,連接數據庫的用戶名;

        Pwd或Password:連接數據庫的密碼。

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

        2.2 文件I/O類

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

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

        2.3 圖像定義與轉換類Image

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

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

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

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

        3 圖像數據存取服務的設計與實現

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

        3.1 數據庫的設計

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

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

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

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

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

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

        4 結束語

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

        [1]徐人鳳.SQL Server 2005數據庫及應用[M].北京:高等教育出版社,2007:72.

        猜你喜歡
        數據庫方法
        學習方法
        數據庫
        財經(2017年15期)2017-07-03 22:40:49
        數據庫
        財經(2017年2期)2017-03-10 14:35:35
        可能是方法不對
        數據庫
        財經(2016年15期)2016-06-03 07:38:02
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        數據庫
        財經(2016年3期)2016-03-07 07:44:46
        數據庫
        財經(2016年6期)2016-02-24 07:41:51
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢方法
        无码国产一区二区色欲| 永久免费观看国产裸体美女| 亚洲av成人无码网天堂| 亚洲欧美成人中文在线网站| 国产激情视频在线观看首页| 欲香欲色天天天综合和网| 午夜无码国产理论在线| 亚洲中文字幕无码二区在线| 日本人妖一区二区三区| 白白在线视频免费观看嘛| 亚洲av永久精品爱情岛论坛| 亚洲七七久久综合桃花| 久久国产亚洲av高清色| 国产亚洲自拍日本亚洲| 亚洲毛片αv无线播放一区| 澳门毛片精品一区二区三区| 精品一区二区三区长筒靴| 人妻免费一区二区三区免费| 欧美最大胆的西西人体44| 国产精品亚洲专区无码web| 国产自拍精品视频免费观看| 亚洲一区二区二区视频| 四虎影视免费观看高清视频| 国产精品无码久久久久免费AV| 国产精品女同二区五区九区| 亚洲国产精品久久久久久无码| 无码精品国产va在线观看| 亚洲一区区| 色婷婷久久综合中文蜜桃| 中文字幕日本人妻久久久免费| 在线看片无码永久免费aⅴ| 日本av在线精品视频| 黄污在线观看一区二区三区三州| 99在线精品免费视频九九视| 欧美人成在线播放网站免费| 国产精品亚洲二区在线| 热re99久久精品国99热| 性夜影院爽黄a爽在线看香蕉 | 国产精品高清一区二区三区人妖| 国产精品亚洲精品日韩已方 | 消息称老熟妇乱视频一区二区|