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

        ?

        基于的ADO.NET數(shù)據(jù)庫訪問技術(shù)研究

        2008-07-14 10:05:50
        電腦知識(shí)與技術(shù) 2008年18期
        關(guān)鍵詞:語言

        劉 瑩

        摘要:ADO.NET是微軟針對(duì)ADO的缺陷而重新設(shè)計(jì)的一種全新的數(shù)據(jù)庫訪問技術(shù)。闡述了ADO.NET的結(jié)構(gòu)與數(shù)據(jù)模型:數(shù)據(jù)提供程序和數(shù)據(jù)集。探討了利用ADO.NET技術(shù)訪問數(shù)據(jù)庫訪問的方式,同時(shí)給出了采用C#語言所實(shí)現(xiàn)的ADO.NET數(shù)據(jù)庫訪問技術(shù)在數(shù)據(jù)庫中編程中的具體實(shí)現(xiàn)方案。

        關(guān)鍵詞:C#語言;ADO.NET;數(shù)據(jù)庫訪問

        中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)18-2pppp-0c

        Research on Database Accessing Technology Based on ADO.NET

        LIU Ying

        (South-central University For Nationalities College of Business,Wuhan 430000,China)

        Abstract:This thesis introduces the data accessing technology based on ADO.NET,illuminates the structure ande the data model of ADO.NET:data provider and data set.It described the way of the database access in using ADO.NET technology.Then the solution with C# language has been presented to use the ADO.NET database accessing technology in database programming.

        Key words:c# language;ADO.NET;Database Accessing

        1 引言

        ActiveX Data Objects.NET(簡稱ADO.NET)是Microsoft公司設(shè)計(jì)的一種新的數(shù)據(jù)訪問技術(shù)。在.NET中,數(shù)據(jù)存取的任務(wù)都是通過ADO.NET完成。同以往的數(shù)據(jù)庫訪問技術(shù)相比,ADO.NET有很多數(shù)據(jù)處理的優(yōu)勢。ADO.NET是為關(guān)系數(shù)據(jù)訪問和非關(guān)系數(shù)據(jù)訪問設(shè)計(jì)的數(shù)據(jù)連接模型,它可以實(shí)現(xiàn)對(duì)數(shù)據(jù)源的非連接處理;另外ADO.NET新增了一些對(duì)象,如DataReader類可以產(chǎn)生一個(gè)只讀的記錄集,用來實(shí)現(xiàn)對(duì)快速讀取數(shù)據(jù)。

        2 ADO.NET的數(shù)據(jù)模型

        ADO.NET有兩個(gè)核心組件:數(shù)據(jù)提供程序和數(shù)據(jù)集。

        數(shù)據(jù)提供程序(data provider)連接數(shù)據(jù)源,支持?jǐn)?shù)據(jù)訪問和處理。數(shù)據(jù)集(data set)支持?jǐn)?shù)據(jù)以關(guān)聯(lián)的方式,在斷開連接的情況下獨(dú)立地緩存數(shù)據(jù),根據(jù)需要更新數(shù)據(jù)源。

        2.1 數(shù)據(jù)提供程序

        ADO.NET中的數(shù)據(jù)提供程序主要有兩種:SQL SERVER數(shù)據(jù)提供程序和OLE DB數(shù)據(jù)提供程序

        每個(gè)數(shù)據(jù)提供程序都是System.Data命名空間中的一個(gè)接口實(shí)現(xiàn)方式,專門用于特定的數(shù)據(jù)源。如SQL SERVER數(shù)據(jù)提供方式屬于System.Data.SqlClient,支持SQL SERVER 7或更新版本。而OLE DB數(shù)據(jù)提供程序?qū)儆赟ystem.Data.OleDb命名空間,支持對(duì)SQL SERVER舊版本和其他數(shù)據(jù)庫(Access、DB2、MySQL和Oracle)的訪問。

        以SQL SERVER數(shù)據(jù)提供程序?yàn)槔?,其中包含?個(gè)主要的組件。

        2.1.1 數(shù)據(jù)提供程序的連接類

        SQL SERVER數(shù)據(jù)提供程序的連接類是SqlConnection,實(shí)現(xiàn)了System.Data.IDbConnection接口,用于實(shí)現(xiàn)與數(shù)據(jù)源的連接。

        要與一個(gè)SQL SERVER數(shù)據(jù)庫建立連接,首先引入命名空間:

        using System.Data;

        using System.Data.SqlClient;

        然后創(chuàng)建連接字符串。連接字符串主要用于指定連接信息的參數(shù),通常包括目標(biāo)SQL SERVER實(shí)例名稱,指定身份驗(yàn)證模式,數(shù)據(jù)庫名等。

        string constring=@”server=(local)sqlexpress;

        integrated security=sspi;

        database=northwind;”

        最后創(chuàng)建連接,也就是SqlConnnection對(duì)象,同時(shí)將連接字符串作為參數(shù)傳遞給它

        SqlConnection con=new SqlConnection(constring);

        打開連接:

        con.Open();

        2.1.2Command對(duì)象

        連接了數(shù)據(jù)庫以后,可以通過Command對(duì)象執(zhí)行sql命令或是存儲(chǔ)過程來完成對(duì)數(shù)據(jù)庫的一些操作。

        首先創(chuàng)建命令字符串:

        string sql=@”select count(*)from employees”;

        然后創(chuàng)建Command對(duì)象:

        SqlCommand cmd=new SqlCommand(sql,con);

        其中sql作為參數(shù)將傳遞給cmd.CommandText屬性,這個(gè)屬性用來保存要執(zhí)行的sql語句;con作為參數(shù)傳遞給cmd.Connection屬性,其作用是將命令與數(shù)據(jù)庫的連接關(guān)聯(lián)起來。

        最后執(zhí)行命令:執(zhí)行命令的方法有四種。方法的區(qū)別取決于sql代碼的結(jié)果。執(zhí)行命令的方法如下表所示:

        表1 執(zhí)行命令的方法

        以剛建立的cmd命令為例:

        cmd.ExecuteScalar();

        2.1.3 數(shù)據(jù)讀取器

        數(shù)據(jù)讀取器是實(shí)現(xiàn)了System.Data.IDataReader接口的對(duì)象。數(shù)據(jù)讀取器用來讀取查詢的結(jié)果集。它是快速的、未緩存的、只向前移動(dòng)的、只讀的、已連接數(shù)據(jù)源的、逐行檢索數(shù)據(jù)的數(shù)據(jù)流。數(shù)據(jù)讀取器適用于只想讀取和顯示數(shù)據(jù)的時(shí)候。

        首先實(shí)例化數(shù)據(jù)讀取器:

        SqlDataReader rd=cmd.ExecuteReader();

        這里需要注意的是,由于SqlDataReader是抽象類,不能顯示的實(shí)例化,必須執(zhí)行SqlCommand的ExecuteReader()方法來獲得SqlDataReader的實(shí)例。

        接著,調(diào)用SqlDataReader的Read()方法來遍歷返回結(jié)果集的每一行。在Read()方法中,如果存在下一行就返回true,并向前移動(dòng)游標(biāo);如果沒有下一行,就返回false。由于Read把游標(biāo)移動(dòng)到下一個(gè)記錄,所以每次都必須手工調(diào)用這個(gè)方法。一般使用while循環(huán)來完成操作:

        while(rd.Read())

        然后訪問數(shù)據(jù):

        在調(diào)用了Read()方法后,下一行就以集合的形式返回,存儲(chǔ)在SqlDataReader對(duì)象中。如果要訪問某一列的數(shù)據(jù),可以使用許多方法。如果使用序數(shù)索引器方法(就像提供整數(shù)數(shù)組的索引一樣),就給數(shù)據(jù)讀取器提供列號(hào)以檢索值:

        Console.WriteLine(“{0}{1}”,rd[0],rd[1]);

        也可以使用列名索引器,把列名傳遞給數(shù)據(jù)讀取器:

        Console.WriteLine(“{0}{1}”,rd[“EmployeeId”],rd[“LastName”])

        使用列名索引器有很多優(yōu)點(diǎn)。當(dāng)表因?yàn)槟硞€(gè)原因添加或刪除一個(gè)或多個(gè)列時(shí),擾亂了列的順序,在使用序數(shù)索引器查找方法的代碼中則會(huì)產(chǎn)生異常。而使用列名索引器可以解決這個(gè)問題。但為了快速得到結(jié)果,還是應(yīng)該使用序數(shù)所引器的方法。

        2.2 數(shù)據(jù)集

        ADO.NET中的數(shù)據(jù)集是多層數(shù)據(jù)庫應(yīng)用程序開發(fā)的一大進(jìn)步。數(shù)據(jù)集允許在本地高速緩存中存儲(chǔ)和修改大量數(shù)據(jù),把數(shù)據(jù)看成表,斷開與數(shù)據(jù)庫的連接,以脫機(jī)方式處理數(shù)據(jù)。

        2.2.1 數(shù)據(jù)適配器

        數(shù)據(jù)適配器對(duì)象在數(shù)據(jù)集和源數(shù)據(jù)之間起到橋梁作用。數(shù)據(jù)適配器對(duì)象使用Fill()方法將數(shù)據(jù)填充到DataSet的DataTable中去,并提供將異動(dòng)的數(shù)據(jù)更新到數(shù)據(jù)源的能力。

        數(shù)據(jù)集、數(shù)據(jù)適配器和數(shù)據(jù)源之間的關(guān)系如圖1。

        圖1 數(shù)據(jù)集、數(shù)據(jù)適配器和數(shù)據(jù)源之間的關(guān)系

        創(chuàng)建數(shù)據(jù)適配器:

        SqlDataAdapter da=new SqlDataAdapter(cmd);

        2.2.2 數(shù)據(jù)集

        數(shù)據(jù)集對(duì)象是ADO.NET對(duì)象模型中最核心的對(duì)象。一個(gè)數(shù)據(jù)集對(duì)象就是一個(gè)記錄集的集合,它相當(dāng)于數(shù)據(jù)緩沖區(qū)。ADO.NET框架提供了記錄集的所有數(shù)據(jù)庫功能。

        首先構(gòu)造數(shù)據(jù)集:

        DataSet ds=new DataSet();

        然后調(diào)用SqlDataAdapter的Fill方法填充數(shù)據(jù)集

        da.Fill(ds,”employees”);

        經(jīng)過以上填充,就把查詢的結(jié)果填入數(shù)據(jù)集中,可以實(shí)現(xiàn)脫機(jī)處理數(shù)據(jù)。

        3 小結(jié)

        ADO.NET是開發(fā)數(shù)據(jù)庫系統(tǒng)的重要技術(shù)。ADO.NET最突出的特性是可以采用非連接的方式的訪問和處理數(shù)據(jù)。與ADO相比,ADO.NET只在必要的時(shí)候?qū)?shù)據(jù)庫進(jìn)行連接,當(dāng)處理完畢后它將及時(shí)關(guān)閉連接,保證了虎踞堀服務(wù)器資源的可用性,使它可以為更多的用戶服務(wù),更加適合網(wǎng)絡(luò)應(yīng)用。

        參考文獻(xiàn):

        [1]James Huddleston.C#數(shù)據(jù)庫入門經(jīng)典[M].2版.北京:清華大學(xué)出版社,2006.

        [2]萬科,覃劍.Visual c#.NET程序設(shè)計(jì)基礎(chǔ)與上機(jī)指導(dǎo)[M].北京:清華大學(xué)出版社,2007.

        [3]王煒奇.基于ADO.NET的數(shù)據(jù)訪問技術(shù)分析與應(yīng)用[J].蘭州工業(yè)高等??茖W(xué)校學(xué)報(bào),2007,14(2):37-40.

        [4]張娜,張劍萍,朱玉文,等.ADO.NET數(shù)據(jù)訪問技術(shù)的應(yīng)用研究[J].北京農(nóng)學(xué)院學(xué)報(bào),2007,22(增刊2):188-190.

        收稿日期:2008-04-03

        作者簡介:劉瑩(1981-),女,湖北武漢人,助教,碩士,研究方向?yàn)閿?shù)據(jù)庫系統(tǒng)理論與應(yīng)用。

        猜你喜歡
        語言
        語言是刀
        文苑(2020年4期)2020-05-30 12:35:30
        讓語言描寫搖曳多姿
        多向度交往對(duì)語言磨蝕的補(bǔ)正之道
        累積動(dòng)態(tài)分析下的同聲傳譯語言壓縮
        我有我語言
        論語言的“得體”
        日本一区二区三区在线视频观看| 国产第一页屁屁影院| 国产日b视频| 日韩人妻有码中文字幕| 亚洲香蕉av一区二区三区| 国产精品久久久国产盗摄| 国产在线白丝DVD精品| 日韩极品视频在线观看免费| 区一区二区三区四视频在线观看| 妺妺窝人体色www看人体| 精品少妇人妻av免费久久久| 一区欧美在线动漫| 丝袜美腿在线观看视频| 国产无遮挡又黄又爽高潮| 成熟丰满熟妇高潮xxxxx| 美女黄频视频免费国产大全| 亚洲日本一区二区在线| 亚洲一区二区三区四区五区六| 久久AⅤ无码精品为人妻系列 | 亚洲性码不卡视频在线| 日本人妻免费在线播放| 欧美a级情欲片在线观看免费| 无码中文日韩Av| 女人天堂av免费在线| 伊人久久大香线蕉av色婷婷色| 亚洲人成亚洲精品| 亚洲AV小说在线观看| 91色区在线免费观看国产| 东北老女人高潮大喊舒服死了| 高清无码一区二区在线观看吞精| 亚洲高清av一区二区| 尹人香蕉久久99天天拍| 被群cao的合不拢腿h纯肉视频| 国产亚洲欧美另类久久久| 国产专区国产精品国产三级| 久久成人国产精品免费软件| 麻豆AV免费网站| 日本少妇又色又紧又爽又刺激| 国产精品毛片无遮挡| 色婷婷七月| 中文字幕色婷婷在线视频|