zoukankan      html  css  js  c++  java
  • 星空雅梦

    Dapper官方教程翻译2:Dapper方法之Execute

    Execute方法描述:

    Execute是Dapper对数据库操作的一个扩展,可以由IDbConnection对象调用。它可以执行一条命令一或多次,返回类型是受影响的行数。这个方法通常用于执行:

    该方法可传递的参数:

    Execute方法参数说明
    参数名 参数含义
    Sql 可执行的数据库语句
    param 命令中的占位参数
    transaction 使用的事务
    commandTimeout 超时时长
    commandType 命令类型

    示例:执行存储过程

    执行一次存储过程:

    1.  
      string sql = "Invoice_Insert";
    2.  
       
    3.  
      using (var connection = My.ConnectionFactory())
    4.  
      {
    5.  
      var affectedRows = connection.Execute(sql,
    6.  
      new {Kind = InvoiceKind.WebInvoice, Code = "Single_Insert_1"},
    7.  
      commandType: CommandType.StoredProcedure);
    8.  
       
    9.  
      My.Result.Show(affectedRows);
    10.  
      }

    执行多次存储过程:

    1.  
      string sql = "Invoice_Insert";
    2.  
       
    3.  
      using (var connection = My.ConnectionFactory())
    4.  
      {
    5.  
      var affectedRows = connection.Execute(sql,
    6.  
      new[]
    7.  
      {
    8.  
      new {Kind = InvoiceKind.WebInvoice, Code = "Many_Insert_1"},
    9.  
      new {Kind = InvoiceKind.WebInvoice, Code = "Many_Insert_2"},
    10.  
      new {Kind = InvoiceKind.StoreInvoice, Code = "Many_Insert_3"}
    11.  
      },
    12.  
      commandType: CommandType.StoredProcedure
    13.  
      );
    14.  
       
    15.  
      My.Result.Show(affectedRows);
    16.  
      }

    示例:Execute执行插入语句

    执行单条插入:

    1.  
      string sql = "INSERT INTO Customers (CustomerName) Values (@CustomerName);";
    2.  
       
    3.  
      using (var connection = new SqlCeConnection("Data Source=SqlCe_W3Schools.sdf"))
    4.  
      {
    5.  
      var affectedRows = connection.Execute(sql, new {CustomerName = "Mark"});
    6.  
       
    7.  
      Console.WriteLine(affectedRows);
    8.  
       
    9.  
      var customer = connection.Query<Customer>("Select * FROM CUSTOMERS WHERE CustomerName = 'Mark'").ToList();
    10.  
       
    11.  
      FiddleHelper.WriteTable(customer);
    12.  
      }

    执行多条插入:

    1.  
      string sql = "INSERT INTO Customers (CustomerName) Values (@CustomerName);";
    2.  
       
    3.  
      using (var connection = new SqlCeConnection("Data Source=SqlCe_W3Schools.sdf"))
    4.  
      {
    5.  
      connection.Open();
    6.  
       
    7.  
      var affectedRows = connection.Execute(sql,
    8.  
      new[]
    9.  
      {
    10.  
      new {CustomerName = "John"},
    11.  
      new {CustomerName = "Andy"},
    12.  
      new {CustomerName = "Allan"}
    13.  
      }
    14.  
      );
    15.  
       
    16.  
      Console.WriteLine(affectedRows);

    示例:Execute执行更新语句

    执行单条更新:

    1.  
      string sql = "UPDATE Categories SET Description = @Description WHERE CategoryID = @CategoryID;";
    2.  
       
    3.  
      using (var connection = new SqlCeConnection("Data Source=SqlCe_W3Schools.sdf"))
    4.  
      {
    5.  
      var affectedRows = connection.Execute(sql,new {CategoryID = 1, Description = "Soft drinks, coffees, teas, beers, mixed drinks, and ales"});
    6.  
       
    7.  
      Console.WriteLine(affectedRows);
    8.  
      }

    执行多条更新:

    1.  
      string sql = "UPDATE Categories SET Description = @Description WHERE CategoryID = @CategoryID;";
    2.  
       
    3.  
      using (var connection = new SqlCeConnection("Data Source=SqlCe_W3Schools.sdf"))
    4.  
      {
    5.  
      var affectedRows = connection.Execute(sql,
    6.  
      new[]
    7.  
      {
    8.  
      new {CategoryID = 1, Description = "Soft drinks, coffees, teas, beers, mixed drinks, and ales"},
    9.  
      new {CategoryID = 4, Description = "Cheeses and butters etc."}
    10.  
      }
    11.  
      );
    12.  
       
    13.  
      Console.WriteLine(affectedRows);

    示例:Execute执行删除操作

    执行单条删除:

    1.  
      string sql = "DELETE FROM Customers WHERE CustomerID = @CustomerID";
    2.  
       
    3.  
      using (var connection = new SqlCeConnection("Data Source=SqlCe_W3Schools.sdf"))
    4.  
      {
    5.  
      var affectedRows = connection.Execute(sql, new {CustomerID = 1});
    6.  
       
    7.  
      Console.WriteLine(affectedRows);
    8.  
      }

    执行多条删除:

    1.  
      string sql = "DELETE FROM OrderDetails WHERE OrderDetailID = @OrderDetailID";
    2.  
       
    3.  
      using (var connection = new SqlCeConnection("Data Source=SqlCe_W3Schools.sdf"))
    4.  
      {
    5.  
      var affectedRows = connection.Execute(sql,
    6.  
      new[]
    7.  
      {
    8.  
      new {OrderDetailID = 1},
    9.  
      new {OrderDetailID = 2},
    10.  
      new {OrderDetailID = 3}
    11.  
      }
    12.  
      );
    13.  
       
    14.  
      Console.WriteLine(affectedRows);
  • 相关阅读:
    JSP介绍
    Cookie和Session的原理及异同
    过滤器的使用
    JAVA 集合
    **JVM** 类加载机制
    *JAVA IO/NIO*
    jvm
    ioc
    spring问题总结
    aop详解
  • 原文地址:https://www.cnblogs.com/LiZhongZhongY/p/10991641.html
Copyright © 2011-2022 走看看