Dapper官方文档(二)【方法之Execute】

描述

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

  • 存储过程
  • INSERT语句
  • UPDATE语句
  • DELETE语句

参数

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

名称描述
sql要执行的命令文本。
param命令参数(默认为null)。
transaction需要使用的事务(默认为null)。
commandTimeout命令执行超时时间(默认为null)。
commandType命令类型(默认为null)。

案例 - 执行存储过程

单次

执行一次存储过程。

string sql = "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 = "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);
}

案例 - 执行INSERT语句

单次

执行一次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);
}

案例 - 执行UPDATE语句

单次

执行一次UPDATE语句。

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);
}

多次

执行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);
}

案例 - 执行DELETE语句

单次

执行一次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}
        });
}
Dapper 是一个轻量级的 ORM 框架,使用起来非常简单。下面是一个使用 Dapper 查询数据的示例: 1. 首先,需要在项目中引入 Dapper 库。可以通过 NuGet 包管理器安装 Dapper。 2. 然后,在代码中使用以下语句引入 Dapper 命名空间: ```csharp using Dapper; ``` 3. 接下来,可以使用 Dapper 提供的 `SqlConnection` 类来连接数据库。例如: ```csharp var connectionString = "Data Source=myserver;Initial Catalog=mydatabase;User ID=myusername;Password=mypassword;"; using (var connection = new SqlConnection(connectionString)) { // ... } ``` 4. 在 `SqlConnection` 对象中,可以使用 `Query` 方法来执行查询操作。例如: ```csharp var sql = "SELECT * FROM Customers WHERE Country = @Country"; var customers = connection.Query<Customer>(sql, new { Country = "USA" }); ``` 上面的代码将查询所有国家为 USA 的客户,并将结果映射到 `Customer` 类型的对象列表中。 在查询语句中,可以使用命名参数来传递参数。Dapper 会自动将参数转换为 SQL 参数,从而防止 SQL 注入攻击。 5. 可以使用 `Execute` 方法来执行更新、插入和删除操作。例如: ```csharp var sql = "UPDATE Customers SET Name = @Name WHERE Id = @Id"; var affectedRows = connection.Execute(sql, new { Id = 1, Name = "John" }); ``` 上面的代码将更新 Id 为 1 的客户的名称为 John。 这只是 Dapper 的一些基本用法,Dapper 还提供了许多其他功能,如事务处理、存储过程调用等。需要了解更多信息,请查看 Dapper文档
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值