• Dapper use Table Value Parameter in C# (Sql Server 数组参数)


    Dapper 也可以使用 数组参数

    参考:Blog on Github

    Dapper 调用存储过程 :单个参数
      static void Main(string[] args)
            {
                var connection = new SqlConnection("Data Source=.;Initial Catalog=Datamip;Integrated Security=True;MultipleActiveResultSets=True");
    
                var info = connection.Query<Users>("sp_GetUsers", new { id = 5 },
                                       commandType: CommandType.StoredProcedure);
            }
    
    Dapper 调用存储过程 :数组参数

    需要使用 Sql Server 的自定义类型 : dbo.IDList

    CREATE TYPE dbo.IDList
    AS TABLE
    (
      ID INT
    );
    GO
    
    c# code
      public static List<WorkLog> QueryWithTVP()
            {
                int[] idList = new int[] { 1, 2 };
                var results = new List<WorkLog>();
                try
                {
                    var typeIdsParameter = new List<SqlDataRecord>();
                    // TypeID  数组参数对应的字段
                    var myMetaData = new SqlMetaData[] { new SqlMetaData("TypeID", SqlDbType.Int) };
                    foreach (var num in idList)
                    {
                        // Create a new record, i.e. row.
                        var record = new SqlDataRecord(myMetaData);
                        // Set the 1st colunm, i.e., position 0 with the correcponding value:
                        record.SetInt32(0, num);
                        // Add the new row to the table rows array:
                        typeIdsParameter.Add(record);
                    }
                    using (IDbConnection conn = new SqlConnection(DBConfig.ConnectionString))
                    {
                        conn.Open();
                       //调用存储过程,IDList: 自定义类型
                        results =  conn.Query<WorkLog>("dbo.GetWorkLog_ByTypeIds",
                                            new TableValueParameter("@TypeIds", "IDList", typeIdsParameter)
                                            , commandType: CommandType.StoredProcedure).ToList();
                    }
                }
                catch (Exception)
                {
    
                    throw;
                }
    
                return results;
            }
    
  • 相关阅读:
    轮播图2
    点击按钮切换轮播图
    轮播图
    2016.5.5_十进制转二进制【ABAP】
    2016.4.26_longtext长文本【ABAP】
    2016.4.26_动态内表【ABAP】
    2016.4.26_下载abap代码【ABAP】
    2016.4.15_debug小技巧【ABAP】
    2016.4.1_js向controller传数据【笔记】
    2016.3.21_TABLE CONTROL【ABAP】
  • 原文地址:https://www.cnblogs.com/leestone/p/11483216.html
Copyright © 2020-2023  润新知