• 
    

    
    

      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ù)庫
      乌拉特后旗| 辽宁省| 达尔| 额尔古纳市| 周口市| 南江县| 安西县| 武陟县| 荔浦县| 博爱县| 松溪县| 德钦县| 慈利县| 甘南县| 固始县| 高青县| 宜良县| 巴南区| 呼伦贝尔市| 呼玛县| 湖州市| 佛教| 清镇市| 逊克县| 平定县| 柘荣县| 花垣县| 古田县| 遵化市| 巧家县| 西平县| 九江市| 丹巴县| 乌恰县| 公主岭市| 根河市| 常宁市| 阳新县| 榆林市| 吐鲁番市| 甘孜|