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

        ?

        NET平臺下LINQ TO SQL關(guān)鍵技術(shù)的實(shí)踐研究

        2015-03-17 22:22:25徐照興
        關(guān)鍵詞:編程語言數(shù)據(jù)模型視圖

        徐照興

        (江西服裝學(xué)院 服裝商貿(mào)分院, 江西 南昌 330201)

        NET平臺下LINQ TO SQL關(guān)鍵技術(shù)的實(shí)踐研究

        徐照興

        (江西服裝學(xué)院 服裝商貿(mào)分院, 江西 南昌 330201)

        LINQ to SQL在對象領(lǐng)域和數(shù)據(jù)領(lǐng)域之間架起了一座橋梁,利用LINQ to SQL可以簡化對SQL Server數(shù)據(jù)庫的操作。本文介紹了LINQ to SQL技術(shù)要點(diǎn),闡述了創(chuàng)建LINQ to SQL實(shí)體類的映射的步驟方法及注意事項(xiàng),給出了LINQ to SQL訪問SQL Server數(shù)據(jù)庫的查詢、刪除、修改、更新操作要點(diǎn)及實(shí)現(xiàn)的核心代碼。

        LINQ to SQL;.NET;SQL Server;數(shù)據(jù)訪問

        LINQ(Language Integrated Query——語言集成查詢)是.NET Framework3.5中的創(chuàng)新性數(shù)據(jù)訪問技術(shù),使程序員不必精通數(shù)據(jù)庫就能快速開發(fā)數(shù)據(jù)庫應(yīng)用程序。傳統(tǒng)的ADO.NET數(shù)據(jù)庫訪問技術(shù),需要針對不同的數(shù)據(jù)庫編寫不同的SQL語句,要求程序員要熟練各種數(shù)據(jù)庫及SQL語法等,如果SQL語句寫錯(cuò)了,只有到運(yùn)行時(shí)才能發(fā)現(xiàn)。LINQ是建立在ADO.NET技術(shù)基礎(chǔ)上的,它能夠把LINQ查詢自動(dòng)轉(zhuǎn)換成SQL語句。

        一、 LINQ to SQL技術(shù)概述

        LINQ是革命性的編程技術(shù),它改變了程序和數(shù)據(jù)之間的關(guān)系。LINQ to SQL是針對訪問Microsoft SQL Server和Oracle數(shù)據(jù)庫的LINQ版本,它通過以對象形式來管理關(guān)系數(shù)據(jù)庫。傳統(tǒng)方法使用SQL數(shù)據(jù)庫需要掌握必要的SQL知識,在編程語言中嵌套SQL語句,或者把包含SQL語句的字符串傳送給面向SQL的數(shù)據(jù)庫類庫中的API調(diào)用或方法。LINO to SOL可以處理與SOL數(shù)據(jù)庫通信的所有細(xì)節(jié)。當(dāng)應(yīng)用程序運(yùn)行時(shí),LINQ to SQL會將對象模型中的語言集成查詢轉(zhuǎn)換為SQL,然后將它們發(fā)送到數(shù)據(jù)庫進(jìn)行執(zhí)行。當(dāng)數(shù)據(jù)庫返回結(jié)果時(shí),LINQ to SQL會將它們轉(zhuǎn)換回編程語言處理的對象。

        使用LINQ to SQL時(shí),需要通過LINQ to SQL在關(guān)系數(shù)據(jù)庫和編程語言(可以使C#、VB.NET等,本文實(shí)例選用C#)之間創(chuàng)建對象相關(guān)映射(Object-Relational Mapping,ORM)。主要的對應(yīng)關(guān)系有:關(guān)系數(shù)據(jù)模型中的表對應(yīng)LINQ to SQL對象模型中的實(shí)體類,關(guān)系數(shù)據(jù)模型中的表的字段對應(yīng)LINQ to SQL對象模型中的類成員,關(guān)系數(shù)據(jù)模型中的外鍵關(guān)系對應(yīng)LINQ to SQL對象模型中的關(guān)聯(lián),關(guān)系數(shù)據(jù)模型中的存儲過程或函數(shù)對應(yīng)LINQ to SQL對象模型中的方法。

        二、創(chuàng)建LINQ to SQL實(shí)體類的映射

        使用LINQ to SQL訪問數(shù)據(jù)庫的第一步是要?jiǎng)?chuàng)建映射到數(shù)據(jù)庫表和視圖的 LINQ to SQL實(shí)體類,該實(shí)體類的屬性映射到所選表或視圖中的列(字段)。創(chuàng)建的方法有多種,比如手動(dòng)編碼、用XML文件映射等,但是使用Visual Studio平臺提供的O/R對象關(guān)系設(shè)計(jì)器最為方便,步驟如下(在此以Visual Studio2012平臺、SQL Server2008創(chuàng)建DBTeacher數(shù)據(jù)庫為例):

        1.建立一個(gè)web網(wǎng)站,點(diǎn)擊“工具”菜單下的“選項(xiàng)”命令,彈出選項(xiàng)對話框,在該對話框左側(cè)點(diǎn)開“數(shù)據(jù)庫工具”,選擇下面的“O/R Designer”,在右側(cè)把“名稱的復(fù)數(shù)形式”啟用設(shè)置為“True”。

        2.創(chuàng)建數(shù)據(jù)庫(DBTeacher)并建立表(tbTeacherInfo)在Visual Studio2012平臺右側(cè)的解決方案。資源管理器的解決方案中添加App_Data文件夾,然后在該文件夾下添加SQL Serve數(shù)據(jù)庫文件DBTeacher。然后通過左側(cè)的服務(wù)器資源管理器為數(shù)據(jù)庫DBTeacher建立表tbTeacherInfo,在此只是為了說明問題,只創(chuàng)建三個(gè)字段,分別是TeacherID(主鍵)、TeacherName及Title,并向該表任意添加幾條記錄(作為測試用)。

        3.右擊站點(diǎn)根目錄,選擇“添加”/“添加新項(xiàng)”,在已安裝模板中再選擇“LINQ to SQL類”,并設(shè)置名稱為DBTeacher.dbml(注意,此處LINQ to SQL類名稱的主文件名最好與數(shù)據(jù)庫主文件名一致),單擊“確定”之后,提示把DBTeacher.dbml文件放在App_Code文件夾下,單擊“是”即可。

        4.在服務(wù)器資源管理器中,將tbTeacherInfo表拖動(dòng)到“對象關(guān)系設(shè)計(jì)器” DBTeacher.dbml的窗口中,tbTeacherInfo表及其列在設(shè)計(jì)器窗口中由名為tbTeacherInfo的實(shí)體表示。此過程在web.config文件中會自動(dòng)生成鏈接數(shù)據(jù)庫的字符串,名稱為“數(shù)據(jù)庫主文件名”+“ConnectionString”。更主要是在DBTeacher.designer.cs中會自動(dòng)生成必要的代碼。

        三、 LINQ to SQL訪問數(shù)據(jù)庫的主要操作技術(shù)

        創(chuàng)建映射到數(shù)據(jù)庫表和視圖的 LINQ to SQL實(shí)體類之后,就可以直接通過LINQ to SQL技術(shù)訪問數(shù)據(jù)庫了,訪問數(shù)據(jù)庫主要包括查詢、添加、刪除、修改等操作。它們實(shí)現(xiàn)的一般步驟如下:

        首先,根據(jù)LINQ to SQL實(shí)體類,創(chuàng)建一個(gè)數(shù)據(jù)上下文對象(如,TeacherDataContent)。

        其次,采用查詢語法,根據(jù)實(shí)際操作執(zhí)行相應(yīng)的LINQ查詢,并將結(jié)果賦予一個(gè)變量(如,Results)。如果知道了操作結(jié)果最多只有一條記錄,采用方法語法時(shí)使用SingleOrDefault ()方法實(shí)現(xiàn)往往更方便快捷。

        最后,根據(jù)查詢的結(jié)果,進(jìn)行相應(yīng)的數(shù)據(jù)綁定或給出相應(yīng)的提示。

        下面給出查詢、添加、刪除、修改四種操作的核心代碼。

        1.查詢操作(以按教師編號查詢?yōu)槔?

        DBTeacherDataContext teacherDC = new DBTeacherDataContext();

        String SelectID = TextBoxID.Text;

        var Results=from tbTecaherInfo in teacherDC. tbTecaherInfos where tbTecaherInfo.TeacherID==SelectID select tbTecaherInfo ;

        if (Results.Count() == 1)

        { GVshow.DataSource = Results;

        GVshow.DataBind();}

        2.刪除操作(以按姓名刪除為例)

        DBTeacherDataContext tdc = new DBTeacherDataContext();

        string delname = TextBoxName.Text;

        var Results = from tbTecaherInfo in tdc. tbTecaherInfos where tbTecaherInfo.TeacherName == delname select tbTecaherInfo;

        if (Results.Count() > 0)

        { int delNumers = Results.Count();

        foreach (var del in Results)

        { tdc.tbTecaherInfos.DeleteOnSubmit(del);

        tdc.SubmitChanges();}}

        3.添加操作

        DBTeacherDataContext tdc = new DBTeacherDataContext();

        string Stitle;

        tbTecaherInfo teacherinfo =tdc. tbTecaherInfos.SingleOrDefault(t=>t.TeacherID ==TextBoxID.Text);

        if (teacherinfo == null)

        { tbTecaherInfo s1 = new tbTecaherInfo { TeacherID = TextBoxID.Text , TeacherName = TextBoxName.Text , Title = Stitle };

        tdc. tbTecaherInfos.InsertOnSubmit(s1);

        tdc.SubmitChanges(); }

        4.修改操作(以根據(jù)教師編號進(jìn)行修改為例)

        string UpdateID = TextBoxID.Text;

        DBTeacherDataContext tdc = new DBTeacherDataContext();

        tbTecaherInfo teacherinfo =tdc. tbTecaherInfos.SingleOrDefault(t=>t.TeacherID ==TextBoxID.Text);

        tbTecaherInfo.TeacherName = TextBoxName.Text;

        tbTecaherInfo.Title = TextBoxTitle.Text;

        studentDC.SubmitChanges();

        四、結(jié)束語

        LINQ to SQL在對象領(lǐng)域和數(shù)據(jù)領(lǐng)域之間架起了一座橋梁,使程序員可以不必過多的關(guān)注SQL語句的編寫,而是把精力集中在業(yè)務(wù)邏輯的實(shí)現(xiàn)上。文章分析了LINQ to SQL的關(guān)鍵技術(shù),給出了訪問SQL Server數(shù)據(jù)庫的查詢、添加、刪除、修改操作的實(shí)現(xiàn)核心代碼,并進(jìn)行了詳盡的解釋,讀者可以從中快速掌握LINQ to SQL技術(shù)。

        2095-4654(2015)03-0006-02

        2014-11-12

        TP393 ;TP311

        A

        猜你喜歡
        編程語言數(shù)據(jù)模型視圖
        壓力-體積轉(zhuǎn)換在CFC編程語言中的實(shí)現(xiàn)解析
        Java編程語言的特點(diǎn)與應(yīng)用
        面板數(shù)據(jù)模型截面相關(guān)檢驗(yàn)方法綜述
        淺談不同編程語言對計(jì)算機(jī)軟件開發(fā)的影響
        電子制作(2018年1期)2018-04-04 01:48:36
        加熱爐爐內(nèi)跟蹤數(shù)據(jù)模型優(yōu)化
        電子測試(2017年12期)2017-12-18 06:35:36
        5.3 視圖與投影
        視圖
        Y—20重型運(yùn)輸機(jī)多視圖
        SA2型76毫米車載高炮多視圖
        面向?qū)ο骔eb開發(fā)編程語言的的評估方法
        久久熟女精品—区二区蜜臀| www插插插无码免费视频网站| 99久久久国产精品免费蜜臀| 91色婷婷成人精品亚洲| 一本色道久久88加勒比| 69精品人人人人| 嫩草影院未满十八岁禁止入内| 亚洲精品日本| 国产精品毛片一区二区三区 | 91精品福利一区二区三区| 狠狠躁天天躁无码中文字幕图| 日韩成人大屁股内射喷水| 高清国产一级毛片国语| 高潮av一区二区三区| 脱了老师内裤猛烈进入| 中文字幕一区二区三区精彩视频| 亚洲中文字幕巨乳人妻| 亚洲精品在线97中文字幕| 极品少妇hdxx麻豆hdxx | 精品国产亚洲av久一区二区三区| 亚洲国产亚综合在线区| 亚洲午夜福利在线观看| 欧美手机在线视频| 少妇被爽到高潮喷水免费福利| 99精品国产在热久久无码| 国产亚洲日韩欧美久久一区二区| 亚洲精品一区二区三区av| 成年人观看视频在线播放| 亚洲国产日韩欧美一区二区三区| 亚洲无码夜夜操| 亚洲乱码中文字幕三四区| 国产欧美一区二区三区在线看| 中文字幕在线亚洲日韩6页手机版 亚洲色图+国产精品 | 日韩精品无码免费专区网站| 国产三级精品美女三级| 三级国产高清在线观看| 久久久久亚洲精品无码网址蜜桃| 国产又黄又爽视频| 国产精品日本一区二区三区在线| 在线播放五十路熟妇| 亚洲女人被黑人巨大进入|