猿教程 Logo

Execute

Execute是一种可以从IDbConnection类型的任何对象调用的扩展方法。 它可以执行一个或多个命令,并返回受影响的行数。 此方法通常用于执行:

  • 存储过程

  • INSERT语句

  • UPDATE语句

  • DELETE语句



参数

下表显示了Execute方法的不同参数。

名称描述
sql要执行的命令文本。
param

命令参数 (默认为 null)

transaction

要使用的事务 (默认为 null)。

commandTimeout

命令超时 (默认为空)

commandType

命令类型 (默认为 null



Dapper执行存储过程案例

一次性执行存储过程。

string sql = "EXEC Invoice_Insert";
using (var connection = My.ConnectionFactory())
{
    connection.Open();
    var affectedRows = connection.Execute(sql,
        new {Kind = InvoiceKind.WebInvoice, Code = "Single_Insert_1"},
        commandType: CommandType.StoredProcedure);
    My.Result.Show(affectedRows);
}

多次执行存储过程。为数组列表中的每个对象执行一次。

string sql = "EXEC Invoice_Insert";
using (var connection = My.ConnectionFactory())
{
    connection.Open();
    var affectedRows = connection.Execute(sql,
        new[]
        {
            new {Kind = InvoiceKind.WebInvoice, Code = "Many_Insert_1"},
            new {Kind = InvoiceKind.WebInvoice, Code = "Many_Insert_2"},
            new {Kind = InvoiceKind.StoreInvoice, Code = "Many_Insert_3"}
        },
        commandType: CommandType.StoredProcedure
    );
    My.Result.Show(affectedRows);
}



Dapper执行插入案例

一次性执行 insert 语句。

string sql = "INSERT INTO Invoice (Code) Values (@Code);";
using (var connection = My.ConnectionFactory())
{
    connection.Open();
    var affectedRows = connection.Execute(sql, new {Kind = InvoiceKind.WebInvoice, Code = "Single_Insert_1"});
    My.Result.Show(affectedRows);
}

多次执行 insert 语句。为数组列表中的每个对象一次。

string sql = "INSERT INTO Invoice (Code) Values (@Code);";
using (var connection = My.ConnectionFactory())
{
    connection.Open();
    var affectedRows = connection.Execute(sql,
        new[]
        {
            new {Kind = InvoiceKind.WebInvoice, Code = "Many_Insert_1"},
            new {Kind = InvoiceKind.WebInvoice, Code = "Many_Insert_2"},
            new {Kind = InvoiceKind.StoreInvoice, Code = "Many_Insert_3"}
        }
    );
    My.Result.Show(affectedRows);
}



Dapper执行修改案例

一次性执行 update 语句。

string sql = "UPDATE Invoice SET Code = @Code WHERE InvoiceID = @InvoiceID";
using (var connection = My.ConnectionFactory())
{
    connection.Open();
    var affectedRows = connection.Execute(sql, new {InvoiceID = 1, Code = "Single_Update_1"});
    My.Result.Show(affectedRows);
}

多次执行 update 语句。为数组列表中的每个对象一次。

string sql = "UPDATE Invoice SET Code = @Code WHERE InvoiceID = @InvoiceID";
using (var connection = My.ConnectionFactory())
{
    connection.Open();
    var affectedRows = connection.Execute(sql,
        new[]
        {
            new {InvoiceID = 1, Code = "Many_Update_1"},
            new {InvoiceID = 2, Code = "Many_Update_2"},
            new {InvoiceID = 3, Code = "Many_Update_3"}
        });
    My.Result.Show(affectedRows);
}



Dapper执行删除案例

一次性执行 delete 语句。

string sql = "DELETE FROM Invoice WHERE InvoiceID = @InvoiceID";
using (var connection = My.ConnectionFactory())
{
    connection.Open();
    var affectedRows = connection.Execute(sql, new {InvoiceID = 1});
    My.Result.Show(affectedRows);
}

多次执行DELETE语句。 一次为数组列表中的每个对象。

string sql = "DELETE FROM Invoice WHERE InvoiceID = @InvoiceID";
using (var connection = My.ConnectionFactory())
{
    connection.Open();
    var affectedRows = connection.Execute(sql,
        new[]
        {
            new {InvoiceID = 1},
            new {InvoiceID = 2},
            new {InvoiceID = 3}
        });
}



版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Dapper/dapper-Execute.html