行為儲存過程(23)
行為儲存過程適用於執行某些資料庫功能,但不返回記錄或值。這些資料庫功能包括對資料的更新、編輯和修改、
下面通過一個行為儲存過程實習成績表grade中插入一天新的記錄和功能,定義了@stud_id、引數@course和@score、在向表中插入時,
需要先判斷表中是否有相同的記錄。如果存在 則不插入該記錄,並給出相應的提示資訊,否則插入該記錄。
儲存過程add_grade的程式碼如下:
create procedure add_grade
@stud_id char(9),
@course varchar(50),
@score int
as
declare @recordcount int
set @recordcount=
(
select count(*) from grade
where stud_id=@stud_id and
course=@course
)
if @recordcount<1
begin
insert into grade
values(@stud_id,@course,@score)
end
然後在編輯的頁面編寫如下程式碼:
~~~~~~~~~~~
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 System.EventHandler
(this.Button1_Click);
}
protected void Button1_Click(object sender, EventArgs e)
{
string conncetionstring = "Data Source=神舟龍-PC\\SQLEXPRESS;Initial Catalog=student;Integrated Security=True;";
SqlConnection conn=new SqlConnection (conncetionstring);
SqlCommand comm=new SqlCommand ("add_grade",conn);//呼叫已經定義好的add_grade儲存過程
comm.CommandType=CommandType.StoredProcedure;
comm.Parameters.Add(new SqlParameter("@stu_id",this.TextBox1.Text));
comm.Parameters.Add(new SqlParameter("@course",this.TextBox2.Text));
comm.Parameters.Add(new SqlParameter("@score",this.TextBox3.Text));
try
{
conn.Open();
comm.ExecuteNonQuery();//呼叫comm物件的ExecuteNonQuery方法來執行儲存過程以新增學生成績,並給出操作提示。
this.Page.RegisterStartupScript("message", "<script>alert('新增成功')</script>");//程式碼有點過時了!汗,以後爭取不出現這種情況
}
catch
{
this.Page.RegisterStartupScript("message","<script>alert('新增失敗')</script>");
}
finally
{
conn.Close();
}
}
}
}
通過呼叫儲存過程,不僅速度快,安全性高,而且除錯容易,特別是複雜的商業邏輯操作,使用儲存過程不僅容易實現,而且大大減少程式碼程式設計量,更加體現儲存過 程的優勢。
本文轉自shenzhoulong 51CTO部落格,原文連結:http://blog.51cto.com/shenzhoulong/321064,如需轉載請自行聯絡原作者
相關文章
- 23. 使用MySQL之使用儲存過程MySql儲存過程
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- SQL 儲存過程裡呼叫另一個儲存過程SQL儲存過程
- 儲存過程與儲存函式儲存過程儲存函式
- SQLSERVER儲存過程SQLServer儲存過程
- 呼叫儲存過程儲存過程
- mysql 儲存過程MySql儲存過程
- unidac儲存過程儲存過程
- firedac儲存過程儲存過程
- Oracle儲存過程Oracle儲存過程
- MySQL 儲存過程進行切換表MySql儲存過程
- JdbcTemplate調儲存過程JDBC儲存過程
- 造數儲存過程儲存過程
- 儲存過程——遊標儲存過程
- 儲存過程 傳 datatable儲存過程
- JAVA儲存過程(轉)Java儲存過程
- MySQL之儲存過程MySql儲存過程
- oracle的儲存過程Oracle儲存過程
- MySQL---------儲存過程MySql儲存過程
- linux呼叫儲存過程Linux儲存過程
- Winform呼叫儲存過程ORM儲存過程
- mysql儲存過程整理MySql儲存過程
- Oracle儲存過程-1Oracle儲存過程
- 不為人知的技術--Oracle並行非同步執行儲存過程Oracle並行非同步儲存過程
- Sql儲存過程分頁--臨時表儲存SQL儲存過程
- mongo 儲存過程詳解Go儲存過程
- Sqlserver中的儲存過程SQLServer儲存過程
- SQL 分頁儲存過程SQL儲存過程
- 原創:oracle 儲存過程Oracle儲存過程
- jsp中呼叫儲存過程JS儲存過程
- 資料庫儲存過程資料庫儲存過程
- mybatis儲存過程返回listMyBatis儲存過程
- Mysql 儲存過程的使用MySql儲存過程
- mysql如何呼叫儲存過程MySql儲存過程
- mysql和orcale的儲存過程和儲存函式MySql儲存過程儲存函式
- mssql 儲存過程呼叫另一個儲存過程中的結果的方法分享SQL儲存過程
- MySQL儲存過程 (即函式)MySql儲存過程函式
- SqlServer-儲存過程分頁SQLServer儲存過程
- openGauss 支援儲存過程除錯儲存過程除錯