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