溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Dapper如何支持存儲過程的

發布時間:2022-03-07 09:42:22 來源:億速云 閱讀:232 作者:小新 欄目:開發技術

這篇文章主要介紹Dapper如何支持存儲過程的,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

在Entity Framework中講解了EF如何支持存儲過程,同樣,Dapper也支持存儲過程,只需要在Query()方法的CommandType中標記使用的是存儲過程就可以了。在Users表上面創建如下的存儲過程:

CREATE proc sp_GetUserByUserName
@UserName varchar(16)
as
begin
select * FROM Users WHERE UserName=@UserName
end
GO

調用存儲過程的代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;
using Dapper;
using DapperApplicationProcedure.Model;

namespace DapperApplicationProcedure
{
    class Program
    {
        static void Main(string[] args)
        {
            // 連接字符串
            string conn = ConfigurationManager.ConnectionStrings["AppConnection"].ConnectionString;
            using (IDbConnection connection = new SqlConnection(conn))
            {
                var query = connection.Query<User>("sp_GetUserByUserName", new { UserName = "風清揚" }, commandType: CommandType.StoredProcedure);
                // 輸出
                query.AsList().ForEach(p =>
                {
                    Console.WriteLine("姓名:"+p.UserName+",郵箱:"+p.Email+",地址:"+p.Address);
                });
            }

            Console.ReadKey();
        }
    }
}

運行過程:

Dapper如何支持存儲過程的

注意:例子中只演示了使用一個參數的存儲過程,如果有多個參數使用方法也一樣。 

示例代碼下載地址:點此下載

使用Execute執行帶輸出參數的存儲過程

創建存儲過程如下:

CREATE proc procWithOutPara
@num1 int,
@num2 int,
@sum int output
as
begin
  set @sum=@num1+@num2
end
GO

dapper調用存儲過程代碼如下:

// 動態類型參數
DynamicParameters paras = new DynamicParameters();
paras.Add("@num1", 23);
paras.Add("@num2", 45);
paras.Add("@sum", 0, DbType.Int32, ParameterDirection.Output);// 指明是輸出參數,這里為指明參數類型大小
// 執行存儲過程
dbConnection.Execute("procWithOutPara", paras, commandType: CommandType.StoredProcedure);
// 獲取輸出參數的值
int sum = paras.Get<int>("@sum");//68

以上是“Dapper如何支持存儲過程的”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女