C 使用SQL儲存過程完整流程

2022-03-25 07:19:26 字數 2497 閱讀 9481

唉,只怪自己學術不精,現在才學習sql儲存過程,從網上找了不少資料,可是很凌亂,定位也比較高,不適合我這樣的小菜學習,現在我就來總結一下c#使用sql儲存過程完整的流程,以sql2005為例。

先簡單的說說什麼是儲存過程:儲存過程就是固化在sql資料庫系統內部的sql語句,這樣做的好處是可以提高執行效率、提高資料庫的安全性、減少網路流量。接下來就講解如何在資料庫中建立乙個儲存過程。

開啟sql2055資料庫,展開「資料庫」節點,找到你使用的資料庫(目的資料庫),展開該資料庫節點,找到「可程式設計性」節點並展開,就可以看到「儲存過程」了,在「儲存過程」上點選右鍵,新建儲存過程。然後會彈出查詢分析器,在這輸入建立**就可以了。

**如下:

create proc myinsert -- 建立乙個儲存過程,名稱為myinsert

--這裡寫引數,如果有的話;沒有的話就空著

as--這裡寫具體語句,可以寫n個

go--可加可不加,go的意思是另起一頁,相當於下乙個功能塊。如果下邊不寫語句,可以不加!

例如:

create proc myinsert

@username varchar(10),--注意這裡的逗號,多個引數用逗號隔開

@password varchar(10),

@name varchar(10),

@usertype varchar(10),

@createpeople varchar(10)

as insert into systemusers(username,password,name,usertype,creatpeople)values(@username,@password,@name,@usertype,@createpeople)

go

這個儲存過程可以向systemusers表中插入一條記錄。

以上講的是手動建立儲存過程的方法,其實完全不必這麼麻煩,直接點選sql2005左上角的「新建查詢」,開啟查詢分析器,然後在上邊的語句中加入一句話:「use jf_charging_system」意思就是使用某個資料庫,也就是在哪個資料庫中建立儲存過程。

例如:

use jf_charging_system

gocreate proc myinsert

@username varchar(10),

@password varchar(10),

@name varchar(10),

@usertype varchar(10),

@createpeople varchar(10)

as insert into systemusers(username,password,name,usertype,creatpeople)values(@username,@password,@name,@usertype,@createpeople)

go

下面再來講解如何在c#中呼叫儲存過程。廢話不過說,一段完整的**+注釋讓你明白一切!這段c#**和上邊的儲存過程是完全對應的。

string strsql = "data source=192.168.24.53;initial catalog=jf_charging_system;persist security info=true;user id=sa;password=1";//資料庫鏈結字串

string sql = "myinsert";//要呼叫的儲存過程名

sqlconnection constr = new sqlconnection(strsql);//sql資料庫連線物件,以資料庫鏈結字串為引數

sqlcommand comstr = new sqlcommand(sql, constr);//sql語句執行物件,第乙個引數是要執行的語句,第二個是資料庫連線物件

comstr.commandtype = commandtype.storedprocedure;//因為要使用的是儲存過程,所以設定執行型別為儲存過程

//依次設定儲存過程的引數

comstr.parameters.add("@username", sqldbtype.varchar, 10).value = "11";

comstr.parameters.add("@password", sqldbtype.varchar, 10).value = "11";

comstr.parameters.add("@name", sqldbtype.varchar, 10).value = "11";

comstr.parameters.add("@usertype", sqldbtype.varchar, 10).value = "11";

comstr.parameters.add("@createpeople", sqldbtype.varchar, 10).value = "11";

constr.open();//開啟資料庫連線

messagebox.show(comstr.executenonquery().tostring());//執行儲存過程

constr.close();//關閉連線

希望對大家有所幫助!

C 中使用SQL儲存過程說明

c 中使用sql儲存過程說明 一 表的建立sql語句 create table tree node id int not null node name varchar 20 collate chinese prc ci as null pat id int null url nvarchar 50 ...

SQL 儲存過程的使用

1.在mssql建立儲存過程,在db 儲存過程 新建儲存過程 右鍵 create procedure user logon check username varchar 45 userpsw varchar 45 asselect from users where username username...

SQL 儲存過程的使用

儲存過程類似乙個函式,可以執行一條或者多條sql語句,可帶引數,可返回值 為了簡化操作,方便更改和擴充套件,將乙個事件的處理封裝在乙個單元中供使用。建立儲存過程 不帶引數的 create proc sp sample asselect from sample 建立儲存過程 帶引數的 create p...