Dapper-Execute


描述

Execute是一種可被任何IDbConnection類型的對象調用的擴展方法。它可以執行一次或多次命令, 並返回受影響的行數。此方法通常用於執行

參數

參數名 描述
sql 執行的sql命令腳本
param 執行命令的參數,默認為null
transaction 事務參數,默認為null
commandTimeout 命令超時時長(秒),默認為null
commandType 命令類型,默認為null

存儲過程

單次執行

public void ExecuteSingleSpInsertTest()
{
    var sp = "Invoice_Insert";
    var singleParam = new { Kind = InvoiceKind.WebInvoice, Code = "Single_Sp_Insert_1" };
    var affectedRows = Rep.Execute(sp, singleParam, System.Data.CommandType.StoredProcedure);
    Assert.True(affectedRows > 0);
}

多次執行

public void ExecuteManySpInsertTest()
{
    var sp = "Invoice_Insert";
    var param = new[]
    {
        new { Kind = InvoiceKind.WebInvoice, Code = "Many_Sp_Insert_1" },
        new { Kind = InvoiceKind.StoreInvoice, Code = "Many_Sp_Insert_2" },
        new { Kind = InvoiceKind.StoreInvoice, Code = "Many_Sp_Insert_3" },
        };
    var affectedRows = Rep.Execute(sp, param, System.Data.CommandType.StoredProcedure);
    Assert.True(affectedRows > 0);
}

插入

插入一條

public void ExecuteSingleSqlInsertTest()
{
    string sql = "INSERT INTO Invoice (Code) Values (@Code);";
    var singleParam = new { Kind = InvoiceKind.WebInvoice, Code = "Single_Sql_Insert_1" };
    var affectedRows = Rep.Execute(sql, singleParam);
    Assert.True(affectedRows > 0);
}

插入多條

public void ExecuteManySqlInsertTest()
{
    string sql = "INSERT INTO Invoice (Code) Values (@Code);";
    var param = new[]
    {
        new { Kind = InvoiceKind.WebInvoice, Code = "Many_Sql_Insert_1" },
        new { Kind = InvoiceKind.StoreInvoice, Code = "Many_Sql_Insert_2" },
        new { Kind = InvoiceKind.StoreInvoice, Code = "Many_Sql_Insert_3" },
    };
    var affectedRows = Rep.Execute(sql, param);
    Assert.True(affectedRows > 0);
}

更新

更新一條

public void ExecuteSingleSqlUpdateTest()
{
    string sql = "UPDATE Invoice SET Code = @Code WHERE InvoiceID = @InvoiceID;";
    var singleParam = new { InvoiceID = 1, Code = "Single_Sql_Update_1" };
    var affectedRows = Rep.Execute(sql, singleParam);
    Assert.True(affectedRows > 0);
}

更新多條

public void ExecuteManySqlUpdateTest()
{
    string sql = "UPDATE Invoice SET Code = @Code WHERE InvoiceID = @InvoiceID;";
    var param = new[]
    {
        new { InvoiceID =1, Code = "Many_Sql_Update_1" },
        new { InvoiceID =2, Code = "Many_Sql_Update_2" },
        new { InvoiceID =3, Code = "Many_Sql_Update_3" },
    };
    var affectedRows = Rep.Execute(sql, param);
    Assert.True(affectedRows > 0);
}

刪除

刪除一條

public void ExecuteSingleSqlDeleteTest()
{
    string sql = "DELETE FROM Invoice WHERE InvoiceID = @InvoiceID;";
    var singleParam = new { InvoiceID = 1 };
    var affectedRows = Rep.Execute(sql, singleParam);
    Assert.True(affectedRows > 0);
}

刪除多條

public void ExecuteManySqlDeleteTest()
{
    string sql = "DELETE FROM Invoice WHERE InvoiceID = @InvoiceID;";
    var param = new[]
    {
        new { InvoiceID =1 },
        new { InvoiceID =2 },
        new { InvoiceID =3 },
    };
    var affectedRows = Rep.Execute(sql, param);
    Assert.True(affectedRows > 0);
}

參考:Dapper Tutorial


下載:示例代碼下載


免責聲明!

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



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