??????唉,只怪自己學術不精,現在才學習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 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
?????
下面再來講解如何在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();//關閉連接
????? 希望對大家有所幫助!
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
