C# 存儲過程的創建與調用


存儲過程: 固化在SQL數據庫系統內部的SQL語句,這樣做的好處是可以提高效率、體改數據庫的安全性、減少網絡流量。

1.打開SQL Server數據庫,展開 “數據庫”系欸但,找到使用的數據庫(目標數據庫),展開該數據庫節點,找到 “可編程性” 節點並展開,就可以看到 “存儲過程”,在 “存儲過程”上點擊右鍵,新建存儲過程,然后會彈出查詢分析器,在這輸入創建代碼就可以

create proc myinsert -- 創建一個存儲過程,名稱為myinsert  
    --這里寫參數,如果有的話;沒有的話就空着  
    as  
    --這里寫具體語句,可以寫N個  
    go--可加可不加,go的意思是另起一頁,相當於下一個功能塊。如果下邊不寫語句,可以不加!
View Code

代碼實例

create proc myinsert
@Name varchar(50)
as 
insert into Student(Name)values(@Name)
go
View Code

上面代碼段的存儲過程,可以向 Student表中插入一行數據。最后執行代碼就能在 “存儲過程”下保存次代碼段,名為“myinsert”

 

上面提到的方法是手動創建一個存儲過程的方法,還有另外一種方法,直接在 “新建查詢”,打開查詢分析器,然后在上邊的語句中加入一句話:"use DataBaseName ” ,DataBaseName就是使用的數據庫的名字,也就是在這個數據庫中建立存儲過程

例如:在Test數據庫中,對Class表插入一行數據

use Test
go
create proc myclass
    @Name varchar(30)
as
    insert into Class(Name)values(@Name)
go
View Code

存儲過程中也可以做 if 判斷

USE [Test]
GO
/****** Object:  StoredProcedure [dbo].[myclass]    Script Date: 10/30/2017 4:30:22 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[myclass]
    @Name varchar(30),
    @SName varchar(50)
as
    if    @Name!=null
    begin
        insert into Class(Name)values(@Name)
        return 
    end
    if    @SName!=null
    begin
        insert into Student(Name)values(@SName)
    end
View Code

2.如何在C# 中調用存儲過程

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Stored_Procedures
{
    class Program
    {
        static void Main(string[] args)
        {
            string strsql = "Data Source=hw-zhi-02;Initial Catalog=Test;Integrated Security=True";//數據庫鏈接字符串  
            string sql = "myclass";//要調用的存儲過程名  
            SqlConnection conStr = new SqlConnection(strsql);//SQL數據庫連接對象,以數據庫鏈接字符串為參數  
            SqlCommand comStr = new SqlCommand(sql, conStr);//SQL語句執行對象,第一個參數是要執行的語句,第二個是數據庫連接對象  
            comStr.CommandType = CommandType.StoredProcedure;//因為要使用的是存儲過程,所以設置執行類型為存儲過程  
            //依次設定存儲過程的參數  
            comStr.Parameters.Add("@Name", SqlDbType.Text).Value = "";
            comStr.Parameters.Add("@SName", SqlDbType.Text).Value = "Test";
            conStr.Open();//打開數據庫連接  
                          //  MessageBox.Show(comStr.ExecuteNonQuery().ToString());//執行存儲過程  
            SqlDataAdapter SqlDataAdapter1 = new SqlDataAdapter(comStr);
            DataTable DT = new DataTable();
            SqlDataAdapter1.Fill(DT);
            conStr.Close();//關閉連接  
        }
    }
}
View Code

最后跑程序,可以在對應數據庫中找到添加的數據

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM