存儲過程就是固化在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=localhost;Initial Catalog=######;Integrated Security=True";//數據庫鏈接字符串 string sql = "SelectUserName";//要調用的存儲過程名 SqlConnection conStr = new SqlConnection(strsql);//SQL數據庫連接對象,以數據庫鏈接字符串為參數 SqlCommand comStr = new SqlCommand(sql, conStr);//SQL語句執行對象,第一個參數是要執行的語句,第二個是數據庫連接對象 comStr.CommandType = CommandType.StoredProcedure;//因為要使用的是存儲過程,所以設置執行類型為存儲過程 //依次設定存儲過程的參數 comStr.Parameters.Add("@Param1", SqlDbType.Text).Value = "####"; conStr.Open();//打開數據庫連接 // MessageBox.Show(comStr.ExecuteNonQuery().ToString());//執行存儲過程 SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter(comStr); DataTable DT=new DataTable (); SqlDataAdapter1.Fill(DT); dataGridView1.DataSource = DT; conStr.Close();//關閉連接
