C#使用SQL預存程序完整流程

來源:互聯網
上載者:User

      唉,只怪自己學術不精,現在才學習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)asinsert into SystemUsers(UserName,PassWord,Name,UserType,CreatPeople)values(@username,@password,@name,@usertype,@createpeople)go

這個預存程序可以向SystemUsers表中插入一條記錄。

     以上講的是手動建立預存程序的方法,其實完全不必這麼麻煩,直接點擊SQL2005左上方的“建立查詢”,開啟查詢分析器,然後在上邊的語句中加入一句話:“use JF_Charging_System”意思就是使用某個資料庫,也就是在哪個資料庫中建立預存程序。

例如:

use JF_Charging_Systemgocreate proc myinsert@username varchar(10),@password varchar(10),@name varchar(10),@usertype varchar(10),@createpeople varchar(10)asinsert 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();//關閉串連

     希望對大家有所協助!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.