使用存储过程(22)
生活随笔
收集整理的這篇文章主要介紹了
使用存储过程(22)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
存儲過程是數據庫開發人員為了使用某一特定的數據庫而編寫SQL語句集。其他的web應用程序可以調用這些存儲過程來訪問和操作數據庫中的數據,如圖:
web應用程序可以直接訪問數據庫,也可以通過存儲過程來調用數據庫,使用存儲過程訪問數據庫與直接訪問數據庫,相比有很多優勢比如:
- 假如有一套復雜的SQL語句需要在多個aspx文件中,可以把他們放在一個存儲過程,然后執行該存儲過程。這樣可以減小aspx文件的大小,同時可以保證每一頁執行的SQL語句相同;當執行一個SQL語句時,服務器要先對處理中的語句編譯,這不但需要時間處理,還要花費服務器資源,相比較而言,在存儲過程執行第一次后,就不需要在進行編譯了,通過存儲過程可以很好的跨過編譯這一步,更快的執行的SQL語句集。從一個動態網頁中執行一個存儲過程比執行一個SQL語句的集合更有效。
- 可以對存儲過程輸入輸出值,這意味著存儲過程非常靈活,相同的存儲過程可以根據不同輸入值返回不同的信息。
- 當向數據庫服務器傳遞一個SQL語句集合時,必須傳遞其中的 誒一個獨立的預計,當執行存儲過程時,相反的,僅需傳遞一個簡單的預計,很明顯的,可以通過執行存儲過程,來減少在網絡上的擁塞。
- 在存儲過程中,可以封裝一些對數據庫的數據操作,從而簡化組件或 應用程序中有關數據操作 的復雜性。
- 通過使用存儲過程可以方便程序的升級和業務邏輯的修改。在存儲過程中封裝的數據可以很方便的修改,不需要重新更改源代碼。
- 可以提高應用程序的安全性,可以再數據庫端授權用戶使用存儲過程,而拒絕用戶直接訪問數據庫,這樣用戶可以通過存儲過程來訪問數據,從而防止用戶直接操作數據表。
從存儲過程的優勢不難看出,存儲過程可以提高訪問數據的效率,安全性,以及對數據庫的保護性比較好,存儲過程按功能可以分為“返回記錄 的存儲過程”“返回值的存儲過程”“行為存儲過程”
返回記錄的存儲過程用于查找指定的記錄,并且排序和過濾這些記錄,然后將查找、排序和過濾后的結果返回到dataset對象,或者數據列表等控件中,此類存儲過程用SQL的select語句構成。
創建存儲過程:
create procedure index_student as select * from course where name='數據庫' order by id
c#后臺代碼:
using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Data.SqlClient;namespace 返回記錄 {public partial class _Default : System.Web.UI.Page{override protected void OnInit( EventArgs e){InitializeComponent();base.OnInit(e);}private void InitializeComponent(){this.Button1.Click+=new EventHandler(Button1_Click);}protected void Button1_Click(object sender, System.EventArgs e){string connectionsting = "Data Source=神舟龍-PC\\SQLEXPRESS;Initial Catalog=student;Integrated Security=True;";SqlConnection conn = new SqlConnection(connectionsting );SqlCommand comm = new SqlCommand("index_student", conn);//將存儲過程名稱index_student作為構造函數的一個參數comm.CommandType = CommandType.StoredProcedure;//聲明comm對象的CommandType為枚舉值CommandType.StoredProcedure,表示執行存儲過程SqlDataAdapter da = new SqlDataAdapter(comm);DataSet ds = new DataSet();try{conn.Open();da.Fill(ds, "course");this.DataGrid1.DataSource = ds.Tables["course"].DefaultView;this.DataGrid1.DataBind();da.Dispose();}catch{this.RegisterStartupScript("message","<script>alert('操作失敗!')</script>");//頁面錯誤提示}}} }轉載于:https://www.cnblogs.com/shenzhoulong/archive/2010/05/23/1742040.html
總結
以上是生活随笔為你收集整理的使用存储过程(22)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于存储过程的ASP.NET用户登录示例
- 下一篇: 苹果即将在印度生产 iPad,相关激励政