• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    淺析基于.NET的數(shù)據(jù)庫存儲過程應(yīng)用

    2017-05-30 12:10:18魏宏昌王英杰梁曉強(qiáng)王志娟張朝亮
    科技尚品 2017年1期
    關(guān)鍵詞:數(shù)據(jù)庫應(yīng)用

    魏宏昌 王英杰 梁曉強(qiáng) 王志娟 張朝亮

    摘 要:數(shù)據(jù)是軟件的重要組成部分,特別是在B/S系統(tǒng)中數(shù)據(jù)庫訪問是一個(gè)讀寫數(shù)據(jù)操作很重要的部分,而通過存儲過程實(shí)現(xiàn)數(shù)據(jù)庫訪問是很多軟件使用的方法。本文介紹ASP.NET 數(shù)據(jù)庫應(yīng)用程序調(diào)用SQL Server數(shù)據(jù)庫管理系統(tǒng)中的存儲過程的方法,以及使用存儲過程的優(yōu)勢和注意事項(xiàng)。

    關(guān)鍵詞:存儲過程;數(shù)據(jù)庫;應(yīng)用

    1 前言

    SQL Server數(shù)據(jù)庫管理系統(tǒng)是目前最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,主要包括數(shù)據(jù)庫、表、視圖,還有函數(shù)、存儲過程、觸發(fā)器等可編程性對象。那什么是存儲過程呢?存儲過程可以說是一個(gè)記錄集,它是由一些T-SQL語句組成的代碼塊,這些T-SQL語句代碼就像C#中的一個(gè)方法一樣,實(shí)現(xiàn)一些功能比如對單表或多表的增刪改查。

    在SQL Server數(shù)據(jù)庫管理系統(tǒng)中容易混淆的有函數(shù)和存儲過程兩個(gè)對象,它們兩個(gè)其實(shí)還是有很大區(qū)別的,主要體現(xiàn)在以下幾點(diǎn):

    (1)一般來說,存儲過程的功能要復(fù)雜一點(diǎn),而函數(shù)是簡短而有針對性的。

    (2)存儲過程可借助output返回參數(shù),而函數(shù)只能返回值或者數(shù)據(jù)集。

    (3)存儲過程是作為一個(gè)獨(dú)立的部分來執(zhí)行,而函數(shù)可以作為Select語句的一部分,由于函數(shù)可以返回一個(gè)數(shù)據(jù)集,因此函數(shù)可以在查詢語句中位于FROM關(guān)鍵字的后面,存儲過程則不能。

    2 存儲過程的優(yōu)點(diǎn)

    存儲過程作為SQL Server數(shù)據(jù)庫管理系統(tǒng)的重要對象,提供了許多標(biāo)準(zhǔn)SQL語言中所沒有的高級特性,主要表現(xiàn)在以下幾個(gè)方面:

    (1)執(zhí)行速度更快。

    (2)允許模塊化程序設(shè)計(jì)。

    (3)提高系統(tǒng)安全性。

    (4)減少網(wǎng)絡(luò)流通量。

    3 存儲過程的分類

    存儲過程大致分為以下這些分類:沒有輸入輸出的存儲過程、有返回值的存儲過程、只返回單一記錄集的存儲過程、返回多個(gè)記錄集的存儲過程、有輸入?yún)?shù)和輸出參數(shù)的存儲過程、同時(shí)具有返回值和輸入與輸出參數(shù)的存儲過程、同時(shí)有返回值和記錄集的存儲過程。

    下面我們以SQL Server自帶的Northwind數(shù)據(jù)庫為例,定義一個(gè)添加區(qū)域名稱操作,并返回這個(gè)操作影響的行數(shù),同時(shí)還要獲取新添加的區(qū)域名的ID以及所有區(qū)域名的記錄集。定義存儲過程的SQL語句:

    CREATE PROCEDURE uspRegion @regionId int output,@regionDescription nchar(50)

    AS insert into Region(RegionDescription)values(@regionDescription)

    set @regionId = @@IDENTITY select * from Region return @@rowcount

    4 在ASP.NET程序里調(diào)用存儲過程

    要訪問數(shù)據(jù)庫就要用到ADO.NET去操作,使用其中的Connection對象連接數(shù)據(jù)庫,再使用Command對象執(zhí)行SQL語句或存儲過程,返回值和輸出參數(shù)都要使用Command對象獲得,如果有返回的數(shù)據(jù)集,還要使用DataAdapter對象將數(shù)據(jù)集填充到DataSet對象里。

    我們使用上面定義的存儲過程,使用ASP.NET執(zhí)行添加區(qū)域名操作,我們先創(chuàng)建一個(gè)ASP.NET頁面,用一個(gè)名為txtDesc的文本框控件作為區(qū)域名的輸入,用名為gvRegion的數(shù)據(jù)表格控件顯示所有區(qū)域信息,用名為lblInfo的標(biāo)簽控件顯示添加操作的結(jié)果和新區(qū)域名的ID。提交按鈕的后臺代碼如下:

    SqlCommand cmd = new SqlCommand();cmd.Connection = conn;cmd.CommandText = “ uspRegion “;

    cmd.CommandType = CommandType.StoredProcedure;

    IDataParameter[] pa = {new SqlParameter(“@regionId”,SqlDbType.Int,4),

    new SqlParameter(“@regionDescription”,SqlDbType.NChar,50),new SqlParameter(“val”,SqlDbType.Int,4)};

    pa[0].Direction = ParameterDirection.Output;pa[1].Value = txtDesc.Text;

    ps[2].Direction = ParameterDirection.ReturnValue;

    cmd.Parameters.Add(pa[0]);cmd.Parameters.Add(pa[1]);cmd.Parameters.Add(pa[2]);

    SqlDataAdapter da = new SqlDataAdapter(cmd);DataSet ds = new DataSet();da.Fill(ds);

    gvRegion.DataSource = ds.Tables[0];gvRegion.DataBind();

    lblInfo.Text = “操作行:" +pa[2].Value.ToString()+ ",新ID為" + pa[0].Value.ToString();

    5 結(jié)語

    本文討論了SQL Server中的存儲過程的概念、分類和優(yōu)缺點(diǎn),并通過一個(gè)實(shí)例和代碼描述了在ASP.NET程序里調(diào)用帶輸入輸出參數(shù)已經(jīng)返回?cái)?shù)據(jù)集的存儲過程。從中我們發(fā)現(xiàn),通過使用存儲過程,可以提高數(shù)據(jù)的獨(dú)立性和邏輯性,還能提高程序的安全性與可擴(kuò)展性。

    參考文獻(xiàn)

    [1]周慧,施樂軍.數(shù)據(jù)庫技術(shù)及應(yīng)用[M].人民郵電出版社,2015.

    [2]高宏.ASP.NET典型模塊與項(xiàng)目實(shí)戰(zhàn)大全[M].清華大學(xué)出版社,2014.

    (作者單位:石家莊信息工程職業(yè)學(xué)院)

    猜你喜歡
    數(shù)據(jù)庫應(yīng)用
    數(shù)據(jù)庫
    數(shù)據(jù)庫
    多媒體技術(shù)在小學(xué)語文教學(xué)中的應(yīng)用研究
    考試周刊(2016年76期)2016-10-09 08:45:44
    分析膜技術(shù)及其在電廠水處理中的應(yīng)用
    科技視界(2016年20期)2016-09-29 14:22:00
    GM(1,1)白化微分優(yōu)化方程預(yù)測模型建模過程應(yīng)用分析
    科技視界(2016年20期)2016-09-29 12:03:12
    煤礦井下坑道鉆機(jī)人機(jī)工程學(xué)應(yīng)用分析
    科技視界(2016年20期)2016-09-29 11:47:01
    氣體分離提純應(yīng)用變壓吸附技術(shù)的分析
    科技視界(2016年20期)2016-09-29 11:02:20
    會計(jì)與統(tǒng)計(jì)的比較研究
    數(shù)據(jù)庫
    數(shù)據(jù)庫
    汾西县| 高尔夫| 华阴市| 松江区| 驻马店市| 石林| 社旗县| 泉州市| 夏河县| 墨脱县| 洮南市| 航空| 寿光市| 肇州县| 胶南市| 土默特右旗| 威海市| 垣曲县| 罗山县| 锡林浩特市| 汉沽区| 文水县| 衡东县| 铁岭县| 罗平县| 乌鲁木齐县| 高邮市| 恩施市| 北流市| 南华县| 屏东市| 海兴县| 灌阳县| 兴安县| 青州市| 酒泉市| 泾川县| 辽宁省| 惠州市| 海伦市| 曲周县|